?? common.h
字號:
#ifndef _COMMON_H_
#define _COMMON_H_
#include <stdio.h>
/* MPEG 頭定義- Mode Values */
#define MPG_MD_STEREO 0
#define MPG_MD_JOINT_STEREO 1
#define MPG_MD_DUAL_CHANNEL 2
#define MPG_MD_MONO 3
#define SYNC_WORD (long)0xfff
#define SYNC_WORD_LENGTH 12
#define ALIGNING 8
#define MINIMUM 4 /* 緩沖區最小值( bytes )*/
#define MAX_LENGTH 32 /* 從比特流讀到詞的最大長度 */
#define BINARY 0 /*二進制輸入文件*/
#define READ_MODE 0 /*解碼模式*/
#define FALSE 0
#define TRUE 1
#define MIN(A, B) ((A) < (B) ? (A) : (B))
#define SBLIMIT 32
#define SSLIMIT 18
#define BUFFER_SIZE 4096
#define HAN_SIZE 512
#define SCALE 32768
#define PI 3.14159265358979
#define PI64 PI/64
#define PI4 PI/4
/* 頭信息 Structure */
typedef struct {
int version;
int lay;
int error_protection;
int bitrate_index;
int sampling_frequency;
int padding;
int extension;
int mode;
int mode_ext;
int copyright;
int original;
int emphasis;
} layer, *the_layer;
/* Header中解釋禎參數的父結構 */
typedef struct {
layer *header; /* 頭信息 */
int actual_mode; /* when writing IS, may forget if 0 chs */
int stereo; /* 1 為 mono, 2 為 stereo */
int jsbound; /* 立體聲編碼的第一個波段 */
int sblimit; /* 所有子帶的數量 */
} frame_params;
typedef struct bit_stream_struc {
FILE *pt; /* 比特流設備指針 */
unsigned char *buf; /* 比特流緩沖 */
int buf_size; /* 比特流緩沖大小( bytes) */
long totbit; /* 比特流的比特計數 */
int buf_byte_idx; /* 指向緩沖區首字節 */
int buf_bit_idx; /* 指向緩沖區首字節首比特 */
int mode; /* 比特流打開模式(讀/寫)*/
int eob; /* 緩沖索引結束 */
int eobs; /* 比特流結束標志 */
char format;
/* rd 模式文件格式 (BINARY/ASCII) */
} Bit_stream_struc;
/* Layer III 附加信息 */
typedef struct {
unsigned main_data_begin;
unsigned private_bits;
struct {
unsigned scfsi[4];
struct gr_info_s {
unsigned part2_3_length;
unsigned big_values;
unsigned global_gain;
unsigned scalefac_compress;
unsigned window_switching_flag;
unsigned block_type;
unsigned mixed_block_flag;
unsigned table_select[3];
unsigned subblock_gain[3];
unsigned region0_count;
unsigned region1_count;
unsigned preflag;
unsigned scalefac_scale;
unsigned count1table_select;
} gr[2];
} ch[2];
} III_side_info_t;
typedef struct {
int l[23]; /* [cb] */
int s[3][13]; /* [window][cb] */
} III_scalefac_t[2]; /* [ch] */
FILE *OpenTableFile(char *name);
void WriteHdr(frame_params *fr_ps);
void *mem_alloc(unsigned long block, char *item);
void alloc_buffer(Bit_stream_struc *bs, int size);
void desalloc_buffer(Bit_stream_struc *bs);
void open_bit_stream_r(Bit_stream_struc *bs, char *bs_filenam, int size);
void close_bit_stream_r(Bit_stream_struc *bs);
int end_bs(Bit_stream_struc *bs);
unsigned long sstell(Bit_stream_struc *bs);
void refill_buffer(Bit_stream_struc *bs);
unsigned int get1bit(Bit_stream_struc *bs);
unsigned long getbits(Bit_stream_struc *bs, int N);
int seek_sync(Bit_stream_struc *bs, unsigned long sync, int N);
int js_bound(int lay, int m_ext);
void hdr_to_frps(frame_params *fr_ps);
void hputbuf(unsigned int val, int N);
unsigned long hsstell();
unsigned long hgetbits(int N);
unsigned int hget1bit();
void rewindNbits(int N);
void rewindNbytes(int N);
#endif /*_COMMON_H_*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -