⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 MPEG-2 has 7 distinct parts as well. The first part is the Systems section which defines the contain
💻 H
字号:
/* global.h, global variables                                               *//* Copyright (C) 1994, MPEG Software Simulation Group. All Rights Reserved. *//* * Disclaimer of Warranty * * These software programs are available to the user without any license fee or * royalty on an "as is" basis.  The MPEG Software Simulation Group disclaims * any and all warranties, whether express, implied, or statuary, including any * implied warranties or merchantability or of fitness for a particular * purpose.  In no event shall the copyright-holder be liable for any * incidental, punitive, or consequential damages of any kind whatsoever * arising from the use of these programs. * * This disclaimer of warranty extends to the user of these programs and user's * customers, employees, agents, transferees, successors, and assigns. * * The MPEG Software Simulation Group does not represent or warrant that the * programs furnished hereunder are free of infringement of any third-party * patents. * * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware, * are subject to royalty fees to patent holders.  Many of these patents are * general enough such that they are unavoidable regardless of implementation * design. * */#include "mpeg2dec.h"/* choose between declaration (GLOBAL undefined) * and definition (GLOBAL defined) * GLOBAL is defined in exactly one file (mpeg2dec.c) */#ifndef GLOBAL#define EXTERN extern#else#define EXTERN#endif/* prototypes of global functions *//* comply.c */void sequence_layer_checks _ANSI_ARGS_((void));void picture_layer_checks _ANSI_ARGS_((void));/* getbits.c */void initbits _ANSI_ARGS_((void));void fillbfr _ANSI_ARGS_((void));unsigned int showbits _ANSI_ARGS_((int n));unsigned int getbits1 _ANSI_ARGS_((void));void flushbits _ANSI_ARGS_((int n));unsigned int getbits _ANSI_ARGS_((int n));/* getblk.c */void getintrablock _ANSI_ARGS_((int comp, int dc_dct_pred[]));void getinterblock _ANSI_ARGS_((int comp));void getmpg2intrablock _ANSI_ARGS_((int comp, int dc_dct_pred[]));void getmpg2interblock _ANSI_ARGS_((int comp));/* gethdr.c */int getheader _ANSI_ARGS_((void));void startcode _ANSI_ARGS_((void));int getslicehdr _ANSI_ARGS_((void));/* getpic.c */void getpicture _ANSI_ARGS_((int framenum));void putlast _ANSI_ARGS_((int framenum));/* getvlc.c */int getMBtype _ANSI_ARGS_((void));int getMV _ANSI_ARGS_((void));int getDMV _ANSI_ARGS_((void));int getCBP _ANSI_ARGS_((void));int getMBA _ANSI_ARGS_((void));int getDClum _ANSI_ARGS_((void));int getDCchrom _ANSI_ARGS_((void));/* idct.c */void idct _ANSI_ARGS_((short *block));void init_idct _ANSI_ARGS_((void));/* idctref.c */void init_idctref _ANSI_ARGS_((void));void idctref _ANSI_ARGS_((short *block));/* motion.c */void motion_vectors _ANSI_ARGS_((int PMV[2][2][2], int dmvector[2],  int mv_field_sel[2][2], int s, int mv_count, int mv_format,  int h_r_size, int v_r_size, int dmv, int mvscale));void motion_vector _ANSI_ARGS_((int *PMV, int *dmvector,  int h_r_size, int v_r_size, int dmv, int mvscale, int full_pel_vector));void calc_DMV _ANSI_ARGS_((int DMV[][2], int *dmvector, int mvx, int mvy));/* mpeg2dec.c */void error _ANSI_ARGS_((char *text));void warning _ANSI_ARGS_((char *text));void printbits _ANSI_ARGS_((int code, int bits, int len));/* recon.c */void reconstruct _ANSI_ARGS_((int bx, int by, int mb_type, int motion_type,  int PMV[2][2][2], int mv_field_sel[2][2], int dmvector[2], int stwtype));/* spatscal.c */void getspatref _ANSI_ARGS_((void));/* store.c */void storeframe _ANSI_ARGS_((unsigned char *src[], int frame));#ifdef DISPLAY/* display.c */void init_display _ANSI_ARGS_((char *name));void exit_display _ANSI_ARGS_((void));void display_second_field _ANSI_ARGS_((void));void dither _ANSI_ARGS_((unsigned char *src[]));void init_dither _ANSI_ARGS_((void));#endif/* global variables */EXTERN char version[]#ifdef GLOBAL  ="mpeg2decode V1.1a, 94/07/04"#endif;EXTERN char author[]#ifdef GLOBAL  ="(C) 1994, MPEG Software Simulation Group"#endif;/* zig-zag scan */EXTERN unsigned char zig_zag_scan[64]#ifdef GLOBAL={  0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,  12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,  35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,  58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63}#endif;/* alternate scan */EXTERN unsigned char alternate_scan[64]#ifdef GLOBAL={  0,8,16,24,1,9,2,10,17,25,32,40,48,56,57,49,  41,33,26,18,3,11,4,12,19,27,34,42,50,58,35,43,  51,59,20,28,5,13,6,14,21,29,36,44,52,60,37,45,  53,61,22,30,7,15,23,31,38,46,54,62,39,47,55,63}#endif;/* default intra quantization matrix */EXTERN unsigned char default_intra_quantizer_matrix[64]#ifdef GLOBAL={  8, 16, 19, 22, 26, 27, 29, 34,  16, 16, 22, 24, 27, 29, 34, 37,  19, 22, 26, 27, 29, 34, 34, 38,  22, 22, 26, 27, 29, 34, 37, 40,  22, 26, 27, 29, 32, 35, 40, 48,  26, 27, 29, 32, 35, 40, 48, 58,  26, 27, 29, 34, 38, 46, 56, 69,  27, 29, 35, 38, 46, 56, 69, 83}#endif;/* non-linear quantization coefficient table */EXTERN unsigned char non_linear_mquant_table[32]#ifdef GLOBAL={   0, 1, 2, 3, 4, 5, 6, 7,   8,10,12,14,16,18,20,22,  24,28,32,36,40,44,48,52,  56,64,72,80,88,96,104,112}#endif;/* color space conversion coefficients * * entries are {crv,cbu,cgu,cgv} * * crv=(255/224)*65536*(1-cr)/0.5 * cbu=(255/224)*65536*(1-cb)/0.5 * cgu=(255/224)*65536*(cb/cg)*(1-cb)/0.5 * cgv=(255/224)*65536*(cr/cg)*(1-cr)/0.5 * * where Y=cr*R+cg*G+cb*B (cr+cg+cb=1) */EXTERN int convmat[8][4]#ifdef GLOBAL={  {117504, 138453, 13954, 34903}, /* no sequence_display_extension */  {117504, 138453, 13954, 34903}, /* ITU-R Rec. 709 (1990) */  {104597, 132201, 25675, 53279}, /* unspecified */  {104597, 132201, 25675, 53279}, /* reserved */  {104448, 132798, 24759, 53109}, /* FCC */  {104597, 132201, 25675, 53279}, /* ITU-R Rec. 624-4 System B, G */  {104597, 132201, 25675, 53279}, /* SMPTE 170M */  {117579, 136230, 16907, 35559}  /* SMPTE 240M (1987) */}#endif;EXTERN int quiet;EXTERN int trace;EXTERN char errortext[256];EXTERN unsigned char *refframe[3],*oldrefframe[3],*auxframe[3],*newframe[3];EXTERN unsigned char *clp;EXTERN int profile, level;EXTERN int horizontal_size,vertical_size,mb_width,mb_height;EXTERN int coded_picture_width, coded_picture_height;EXTERN int chroma_format,chrom_width,chrom_height,blk_cnt;EXTERN int pict_type;EXTERN int forw_r_size,back_r_size;EXTERN int full_forw,full_back;EXTERN int fault;EXTERN int verbose;EXTERN int prog_seq;EXTERN int h_forw_r_size,v_forw_r_size,h_back_r_size,v_back_r_size;EXTERN int dc_prec,pict_struct,topfirst,frame_pred_dct,conceal_mv;EXTERN int intravlc,repeatfirst,prog_frame;EXTERN int secondfield;EXTERN int stwc_table_index,llw,llh,hm,hn,vm,vn;EXTERN int lltempref,llx0,lly0,llprog_frame,llfieldsel;EXTERN unsigned char *llframe0[3],*llframe1[3];EXTERN short *lltmp;EXTERN char *llinputname;EXTERN int twostreams,sflag;EXTERN int refidct;EXTERN int matrix_coefficients;/* output */EXTERN int framestoreflag;EXTERN char *outputname;EXTERN int outtype, hiQdither;#define T_YUV   0#define T_SIF   1#define T_TGA   2#define T_PPM   3#define T_X11   4#define T_X11HIQ 5/* layer specific variables (needed for SNR and DP scalability) */EXTERN struct layer_data {  /* bit input */  int infile;  unsigned char rdbfr[2048];  unsigned char *rdptr;  unsigned char inbfr[16];  int incnt;  int bitcnt;  /* sequence header */  int intra_quantizer_matrix[64],non_intra_quantizer_matrix[64];  int chroma_intra_quantizer_matrix[64],chroma_non_intra_quantizer_matrix[64];  int mpeg2;  /* sequence scalable extension */  int scalable_mode;  /* picture coding extension */  int qscale_type,altscan;  /* picture spatial scalable extension */  int pict_scal;  /* slice/macroblock */  int pri_brk;  int quant_scale;  int intra_slice;  short block[12][64];} base, enhan, *ld;/* some of these (currently unused) variables are layer dependent! */EXTERN int low_delay;EXTERN int video_format;  /* initialize to -1 for compliance test */EXTERN int last_temp_ref; /* compliance test variable */EXTERN int temp_ref, vbv_delay;EXTERN int picture_rate, aspect_ratio, vbv_buffer_size;EXTERN int last_pict_type;  /* compliance test variable */EXTERN int colour_primaries;EXTERN int transfer_characteristics;EXTERN int display_horizontal_size, display_vertical_size;EXTERN int bit_rate_value; EXTERN float bit_rate;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -