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

📄 mpg_global.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/* global.h, global variables                                               */

#ifndef _GLOBAL_H
#define _GLOBAL_H

#include "mpeg.h"
#include "MpegFile.h"
#include "Mpg_config.h"

#ifndef GLOBAL
#define EXTERN extern
#else
#define EXTERN
#endif

/* layer specific variables (needed for SNR and DP scalability) */
typedef struct
{
    /* bit input */
    FILE *Infile;
    unsigned char *Rdbfr;//Rdbfr[2048];
    unsigned char *Rdptr;
    unsigned char Inbfr[16];

    unsigned int Bfr;
    unsigned char *Rdmax;
    int Incnt;
    int Bitcnt;

    int MPEG2_Flag;
    /* sequence scalable extension */
    int scalable_mode;
    /* picture coding extension */
    int q_scale_type;
    int alternate_scan;
    /* picture spatial scalable extension */
    int pict_scal;
}layer_data;
/* prototypes of global functions */

/* Get_Bits.c */
void Initialize_Buffer _ANSI_ARGS_((layer_data *laydat));
void Fill_Buffer _ANSI_ARGS_((layer_data *laydat));
#ifdef ON_ZSP
unsigned long Show_Bits _ANSI_ARGS_((layer_data *laydat, int n));
unsigned int Get_Bits1 _ANSI_ARGS_((layer_data *laydat));
void Flush_Buffer _ANSI_ARGS_((layer_data *laydat, int n));
unsigned long Get_Bits _ANSI_ARGS_((layer_data *laydat, int n));
int Get_Byte _ANSI_ARGS_((layer_data *laydat));
int Get_Word _ANSI_ARGS_((layer_data *laydat));
#else
unsigned int Show_Bits _ANSI_ARGS_((layer_data *laydat, int n));
unsigned int Get_Bits1 _ANSI_ARGS_((layer_data *laydat));
void Flush_Buffer _ANSI_ARGS_((layer_data *laydat, int n));
unsigned int Get_Bits _ANSI_ARGS_((layer_data *laydat, int n));
int Get_Byte _ANSI_ARGS_((layer_data *laydat));
int Get_Word _ANSI_ARGS_((layer_data *laydat));
#endif

/* systems.c */
void Next_Packet _ANSI_ARGS_((int bskip));
void Next_PacketAudio _ANSI_ARGS_((void));
void Flush_Buffer32 _ANSI_ARGS_((layer_data *laydat));
long Get_Long _ANSI_ARGS_((layer_data *laydat));
unsigned int Get_Bits32 _ANSI_ARGS_((layer_data *laydat));

/* gethdr.c */
int Get_Hdr _ANSI_ARGS_((void));
void next_start_code _ANSI_ARGS_((layer_data *laydat));
void marker_bit _ANSI_ARGS_((layer_data *laydat, char *text));
int Get_Seq_Hdr();
int Get_GOP_Hdr();

void Error _ANSI_ARGS_((void));

/* global variables */

/* decoder operation control flags */
EXTERN int Fault_Flag;      /////
#ifdef VERBOSE
EXTERN int Verbose_Flag;
#endif
EXTERN int System_Stream_Flag;

/* filenames */
//EXTERN char *Main_Bitstream_Filename;

/* buffers for multiuse purposes */
//EXTERN char Error_Text[256];


/* non-normative variables derived from normative elements */
//EXTERN int Coded_Picture_Width;
//EXTERN int Coded_Picture_Height;
//EXTERN int Chroma_Width;
//EXTERN int Chroma_Height;
//EXTERN int block_count;
//EXTERN int Second_Field;
EXTERN int profile, level;

/* normative derived variables (as per ISO/IEC 13818-2) */
EXTERN int horizontal_size;
EXTERN int vertical_size;
//EXTERN int mb_width;
//EXTERN int mb_height;
EXTERN double mpeg_bit_rate;



/* headers */

/* ISO/IEC 13818-2 section 6.2.2.1:  sequence_header() */
EXTERN int aspect_ratio_information;
EXTERN int mpeg_frame_rate_code;
EXTERN int bit_rate_value;
EXTERN int vbv_buffer_size;
EXTERN int constrained_parameters_flag;


EXTERN int progressive_sequence;
EXTERN int repeat_first_field;
EXTERN int picture_structure;
EXTERN int top_field_first;
EXTERN int chroma_format;

#if 0
/* ISO/IEC 13818-2 section 6.2.2.3:  sequence_extension() */
EXTERN int profile_and_level_indication;
//EXTERN int progressive_sequence;
//EXTERN int chroma_format;
EXTERN int low_delay;
EXTERN int frame_rate_extension_n;
EXTERN int frame_rate_extension_d;

/* ISO/IEC 13818-2 section 6.2.2.4:  sequence_display_extension() */
EXTERN int video_format;
EXTERN int color_description;
EXTERN int color_primaries;
EXTERN int transfer_characteristics;
EXTERN int matrix_coefficients;
EXTERN int display_horizontal_size;
EXTERN int display_vertical_size;


/* ISO/IEC 13818-2 section 6.2.3: picture_header() */
EXTERN int temporal_reference;
EXTERN int picture_coding_type;
EXTERN int vbv_delay;
EXTERN int full_pel_forward_vector;
EXTERN int forward_f_code;
EXTERN int full_pel_backward_vector;
EXTERN int backward_f_code;


/* ISO/IEC 13818-2 section 6.2.3.1: picture_coding_extension() header */
EXTERN int f_code[2][2];
EXTERN int intra_dc_precision;
//EXTERN int picture_structure;
//EXTERN int top_field_first;
EXTERN int frame_pred_frame_dct;
EXTERN int concealment_motion_vectors;

EXTERN int intra_vlc_format;

//EXTERN int repeat_first_field;

EXTERN int chroma_420_type;
EXTERN int progressive_frame;
EXTERN int composite_display_flag;
EXTERN int v_axis;
EXTERN int field_sequence;
EXTERN int sub_carrier;
EXTERN int burst_amplitude;
EXTERN int sub_carrier_phase;



/* ISO/IEC 13818-2 section 6.2.3.3: picture_display_extension() header */
EXTERN int frame_center_horizontal_offset[3];
EXTERN int frame_center_vertical_offset[3];



/* ISO/IEC 13818-2 section 6.2.2.5: sequence_scalable_extension() header */
EXTERN int layer_id;
EXTERN int lower_layer_prediction_horizontal_size;
EXTERN int lower_layer_prediction_vertical_size;
EXTERN int horizontal_subsampling_factor_m;
EXTERN int horizontal_subsampling_factor_n;
EXTERN int vertical_subsampling_factor_m;
EXTERN int vertical_subsampling_factor_n;


/* ISO/IEC 13818-2 section 6.2.3.5: picture_spatial_scalable_extension() header */
EXTERN int lower_layer_temporal_reference;
EXTERN int lower_layer_horizontal_offset;
EXTERN int lower_layer_vertical_offset;
EXTERN int spatial_temporal_weight_code_table_index;
EXTERN int lower_layer_progressive_frame;
EXTERN int lower_layer_deinterlaced_field_select;



/* ISO/IEC 13818-2 section 6.2.3.6: copyright_extension() header */
EXTERN int copyright_flag;
EXTERN int copyright_identifier;
EXTERN int original_or_copy;
EXTERN int copyright_number_1;
EXTERN int copyright_number_2;
EXTERN int copyright_number_3;
#endif

/* ISO/IEC 13818-2 section 6.2.2.6: group_of_pictures_header()  */
EXTERN int drop_flag;
EXTERN int hour;
EXTERN int minute;
EXTERN int sec;
EXTERN int frameID;
EXTERN int closed_gop;
EXTERN int broken_link;

EXTERN layer_data base, /*enhan,*/ *ld, *ld2, audiobase;


#ifdef VERIFY
EXTERN int verify_sequence_header;
EXTERN int verify_group_of_pictures_header;
EXTERN int verify_picture_header;
EXTERN int verify_slice_header;
EXTERN int verify_sequence_extension;
EXTERN int verify_sequence_display_extension;
EXTERN int verify_quant_matrix_extension;
EXTERN int verify_sequence_scalable_extension;
EXTERN int verify_picture_display_extension;
EXTERN int verify_picture_coding_extension;
EXTERN int verify_picture_spatial_scalable_extension;
EXTERN int verify_picture_temporal_scalable_extension;
EXTERN int verify_copyright_extension;
#endif /* VERIFY */


/* verify.c */
#ifdef VERIFY
void Check_Headers _ANSI_ARGS_((int Bitstream_Framenum, int Sequence_Framenum));
void Clear_Verify_Headers _ANSI_ARGS_((void));
#endif /* VERIFY */

EXTERN int True_Framenum;
//EXTERN unsigned int pts_orig,dts_orig;
EXTERN unsigned int pts_dts_orig_flag;

#endif

⌨️ 快捷键说明

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