www.pudn.com > avs-m3.rar > hrd.h


/*! 
 *************************************************************************** 
 * \file 
 *     hrd.h 
 * \brief 
 *************************************************************************** 
 */ 
 
 
#ifndef _HRD_H_ 
#define _HRD_H_ 
 
 
 
#define MAX_FRAME_NUM 10000 
 
#include "global.h" 
 
struct FrameBuffer 
{ 
    unsigned char **imgY; 
    unsigned char ***imgUV; 
    int used_for_ref; 
    int outputted; 
    int rotvalue; 
    int frmnum; 
    int number_of_bytes; 
}; 
 
//! Decoded Picture Buffer 
struct DecodedPictureBuffer 
{ 
    struct FrameBuffer **fb; 
    unsigned int size; 
    unsigned int used_size; 
    unsigned int iHeight; 
    unsigned int iWidth; 
}; 
 
extern unsigned int seq_parameter_set_id; 
extern unsigned int cpb_dpb_cnt_minus1; 
extern unsigned int *cpb_underflow_allowable_flag; 
extern unsigned int *bit_rate_value_minus1_lsb; 
extern unsigned int *bit_rate_value_minus1_msb; 
extern unsigned int *cpb_size_value_minus1_lsb; 
extern unsigned int *cpb_size_value_minus1_msb; 
extern unsigned int *dpb_size_value_minus1_lsb; 
extern unsigned int *dpb_size_value_minus1_msb; 
extern unsigned int *initial_cpb_removal_delay_lsb; 
extern unsigned int *initial_cpb_removal_delay_msb; 
extern unsigned int *initial_cpb_removal_delay; 
extern unsigned int *initial_dpb_output_delay_lsb; 
extern unsigned int *initial_dpb_output_delay_msb; 
extern unsigned int *initial_dpb_output_delay; 
 
 
extern unsigned int *Bit_Buffer; 
 
extern unsigned int *ROT; 
extern struct DecodedPictureBuffer dpb; 
extern struct FrameBuffer outframe; 
extern struct FrameBuffer decframe; 
 
extern unsigned int outputtimer; 
extern int pre_picture_distance; 
 
 
 
void calc_buffer(struct inp_par *inp); 
void init_hrd(int NumberLeakyBuckets); 
void end_hrd(); 
 
void init_dpb(); 
void free_dpb(); 
 
void Store_OneFrame_Into_DPB(struct FrameBuffer *pDecFrame); 
void UpdateRefFrameBufFlag(); 
 
 
 
#endif // _HRD_H_