87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Based on common.h from libavcodec.  Modified extensively by Matt Campbell
 | |
|    <mattcampbell@pobox.com> for the stand-alone mpaudec library. */
 | |
| 
 | |
| #ifndef INTERNAL_H
 | |
| #define INTERNAL_H
 | |
| 
 | |
| #if defined(_WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)
 | |
| #    define CONFIG_WIN32
 | |
| #endif
 | |
| 
 | |
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| #include <ctype.h>
 | |
| #include <math.h>
 | |
| #include <stddef.h>
 | |
| #include "mpaudec.h"
 | |
| 
 | |
| #ifndef M_PI
 | |
| #define M_PI    3.14159265358979323846
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_WIN32
 | |
| 
 | |
| /* windows */
 | |
| 
 | |
| typedef unsigned short uint16_t;
 | |
| typedef signed short int16_t;
 | |
| typedef unsigned char uint8_t;
 | |
| typedef unsigned int uint32_t;
 | |
| typedef unsigned __int64 uint64_t;
 | |
| typedef signed char int8_t;
 | |
| typedef signed int int32_t;
 | |
| typedef signed __int64 int64_t;
 | |
| 
 | |
| #    ifdef _DEBUG
 | |
| #        define DEBUG
 | |
| #    endif
 | |
| 
 | |
| /* CONFIG_WIN32 end */
 | |
| #else
 | |
| 
 | |
| /* unix */
 | |
| 
 | |
| #include <inttypes.h>
 | |
| 
 | |
| #endif /* !CONFIG_WIN32 */
 | |
| 
 | |
| /* debug stuff */
 | |
| 
 | |
| #if !defined(DEBUG) && !defined(NDEBUG)
 | |
| #    define NDEBUG
 | |
| #endif
 | |
| #include <assert.h>
 | |
| 
 | |
| /* bit input */
 | |
| 
 | |
| typedef struct GetBitContext {
 | |
|     const uint8_t *buffer;
 | |
|     int index;
 | |
|     int size_in_bits;
 | |
| } GetBitContext;
 | |
| 
 | |
| int get_bits_count(const GetBitContext *s);
 | |
| 
 | |
| #define VLC_TYPE int16_t
 | |
| 
 | |
| typedef struct VLC {
 | |
|     int bits;
 | |
|     VLC_TYPE (*table)[2];
 | |
|     int table_size, table_allocated;
 | |
| } VLC;
 | |
| 
 | |
| unsigned int get_bits(GetBitContext *s, int n);
 | |
| unsigned int show_bits(const GetBitContext *s, int n);
 | |
| void skip_bits(GetBitContext *s, int n);
 | |
| void init_get_bits(GetBitContext *s,
 | |
|                    const uint8_t *buffer, int buffer_size);
 | |
| 
 | |
| int init_vlc(VLC *vlc, int nb_bits, int nb_codes,
 | |
|              const void *bits, int bits_wrap, int bits_size,
 | |
|              const void *codes, int codes_wrap, int codes_size);
 | |
| void free_vlc(VLC *vlc);
 | |
| int get_vlc(GetBitContext *s, const VLC *vlc);
 | |
| 
 | |
| #endif /* INTERNAL_H */
 |