📄 video.h
字号:
/* Block structure. */typedef struct block {#ifdef USE_ATI long int dct_recon[6][130]; /* Reconstructed dct runs & levels */#else short int dct_recon[8][8]; /* Reconstructed dct coeff matrix. */#endif short int dct_dc_y_past; /* Past lum. dc dct coefficient. */ short int dct_dc_cr_past; /* Past cr dc dct coefficient. */ short int dct_dc_cb_past; /* Past cb dc dct coefficient. */} Block;/* Video stream structure. */typedef struct vid_stream { unsigned int h_size; /* Horiz. size in pixels. */ unsigned int v_size; /* Vert. size in pixels. */ unsigned int mb_height; /* Vert. size in mblocks. */ unsigned int mb_width; /* Horiz. size in mblocks. */ unsigned char aspect_ratio; /* Code for aspect ratio. */ unsigned char picture_rate; /* Code for picture rate. */ unsigned int bit_rate; /* Bit rate. */ unsigned int vbv_buffer_size; /* Minimum buffer size. */ BOOLEAN const_param_flag; /* Contrained parameter flag. */ unsigned char intra_quant_matrix[8][8]; /* Quantization matrix for intracoded frames. */ unsigned char non_intra_quant_matrix[8][8]; /* Quanitization matrix for non intracoded frames. */ char *ext_data; /* Extension data. */ char *user_data; /* User data. */ GoP group; /* Current group of pict. */ Pict picture; /* Current picture. */ Slice slice; /* Current slice. */ Macroblock mblock; /* Current macroblock. */ Block block; /* Current block. */ int state; /* State of decoding. */ int bit_offset; /* Bit offset in stream. */ unsigned int *buffer; /* Pointer to next byte in buffer. */ int buf_length; /* Length of remaining buffer.*/ unsigned int *buf_start; /* Pointer to buffer start. *//* VC - beginning of added variables for noise computation */ short noise_base_matrix[8][8]; /* Square quantization error *//* VC - end of added variables *//* Brown - beginning of added variables that used to be static or global */ int max_buf_length; /* Max length of buffer. */ int film_has_ended; /* Boolean - film has ended */ unsigned int num_left; /* from ReadPacket - leftover */ unsigned int leftover_bytes; /* from ReadPacket - leftover */ int EOF_flag; /* stream is EOF */ BOOLEAN Parse_done; /* from read_sys */ int right_for,down_for; /* From ReconPMBlock, video.c */ int right_half_for, down_half_for; unsigned int curBits; /* current bits */ int matched_depth; /* depth of displayed movie */ int ditherType; /* What type of dithering */ char *ditherFlags; /* flags for MB Ordered dither*/ int totNumFrames; /* Total Number of Frames */ double realTimeStart; /* When did the movie start? *//* Brown - end of added variables */ PictImage *past; /* Past predictive frame. */ PictImage *future; /* Future predictive frame. */ PictImage *current; /* Current frame. */ PictImage *ring[RING_BUF_SIZE]; /* Ring buffer of frames. *//* KR - beginning of added variables */ double rate_deal; int _skipFrame; double _skipCount; int _jumpFrame; double _oneFrameTime; MPEGvideo* _smpeg;/* KR - end of added variables *//* SL - beginning of added variables for FPS calculation *///#define CALCULATE_FPS#define FPS_WINDOW 60#ifdef CALCULATE_FPS double frame_time[FPS_WINDOW]; int timestamp_index;#endif/* SL - end of added variables *//* begining of added variables for system stream based sync */ double timestamp; unsigned int *timestamp_mark; bool timestamp_used;/* begining of added variables */ bool need_frameadjust; int current_frame;#ifdef USE_ATI unsigned int ati_handle;#endif} VidStream; /* Declaration of global display pointer. *//* Quiet mode flag. */extern int quietFlag;/* Flag controlling the "Press return" prompt */extern int requireKeypressFlag;/* Flag controlling speed vs. quality */extern int qualityFlag;/* Gamma correction stuff */extern int gammaCorrectFlag;extern double gammaCorrect;/* Chroma correction stuff */extern int chromaCorrectFlag;extern double chromaCorrect;/* Definition of Contant integer scale factor. */#define CONST_BITS 13/* Misc DCT definitions */#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */#define GLOBAL /* a function referenced thru EXTERNs */ typedef short DCTELEM;typedef DCTELEM DCTBLOCK[DCTSIZE2]; #ifdef ANALYSISextern unsigned int bitCount;extern int showEachFlag;extern unsigned int cacheHit[8][8];extern unsigned int cacheMiss[8][8];#endif#if !defined(__MIPSEL__) && (defined(MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(__mipsel) || defined(__mipsel__))#define __MIPSEL__ 1#endif#if !defined(__MIPSEB__) && (defined(MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) || defined(__mipseb) || defined(__mipseb__))#define __MIPSEB__ 1#endif#if !defined(__SPARC__) && (defined(SPARC) || defined(__SPARC) || defined(__SPARC__) || defined(__sparc) || defined(__sparc__))#define __SPARC__ 1#endif#if !defined(__alpha__) && (defined(ALPHA) || defined(__ALPHA) || defined(__ALPHA__) || defined(__alpha))#define __alpha__ 1#endif#if !defined(__680x0__) && (defined(__680x0) || defined(__680x0__))#define __680x0__ 1#endif#if !defined(__AIX__) && (defined(AIX) || defined(_AIX) || defined(__AIX) || defined(__AIX__))#define __AIX__ 1#endif#if !defined(__RS6000__) && (defined(__AIX__) || defined(RS6000) || defined(_RS6000) || defined(__RS6000) || defined(__RS6000__))#define __RS6000__ 1#endif#if !defined(__HPUX__) && (defined(HPUX) || defined(_HPUX) || defined(__HPUX) || defined(__HPUX__))#define __HPUX__ 1#endif#if !defined(__HPUX__) && (defined(hpux) || defined(_hpux) || defined(__hpux) || defined(__hpux__))#define __HPUX__ 1#endif#if !defined(__VAX__) && (defined(VAX) || defined (__VAX))#define __VAX__ 1#endif#if !defined(__SCO__) && (defined(SCO) || defined(__SCO) || defined(sco) || defined(__sco__))#define __SCO__ 1#endif#if defined(__i386__) || defined(__VAX__) || defined(__MIPSEL__) || defined(__alpha__) || defined(__SCO__)#undef BIG_ENDIAN_ARCHITECTURE#define LITTLE_ENDIAN_ARCHITECTURE 1#endif#if defined(__RS6000__) || defined(__SPARC__) || defined(__mc68000__) || defined(__HPUX__) || defined(__MIPSEB__) || defined(convex) || defined(__convex__) || defined(__powerpc__)#undef LITTLE_ENDIAN_ARCHITECTURE#define BIG_ENDIAN_ARCHITECTURE 1#endif#if !defined(LITTLE_ENDIAN_ARCHITECTURE) && !defined(BIG_ENDIAN_ARCHITECTURE)#ifdef WIN32#undef BIG_ENDIAN_ARCHITECTURE#define LITTLE_ENDIAN_ARCHITECTURE#else#ifdef __BIG_ENDIAN__#undef LITTLE_ENDIAN_ARCHITECTURE#define BIG_ENDIAN_ARCHITECTURE 1#else#include <endian.h>#if __BYTE_ORDER == __LITTLE_ENDIAN#undef BIG_ENDIAN_ARCHITECTURE#define LITTLE_ENDIAN_ARCHITECTURE 1#endif#if __BYTE_ORDER == __BIG_ENDIAN#undef LITTLE_ENDIAN_ARCHITECTURE#define BIG_ENDIAN_ARCHITECTURE 1#endif#endif#endif#endif#if !defined(LITTLE_ENDIAN_ARCHITECTURE) && !defined(BIG_ENDIAN_ARCHITECTURE)#error Unknown endianism of architecture#endif#ifdef __alpha__#define SIXTYFOUR_BIT#endif/* Warnings that may help in debugging MPEG streams *///#define VERBOSE_WARNINGS//#define VERBOSE_DEBUG#endif /* video.h already included */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -