www.pudn.com > jm74.zip > nalucommon.h


 
/*! 
 ************************************************************************************** 
 * \file 
 *    nalucommon.h.h 
 * \brief 
 *    NALU handling common to encoder and decoder 
 *  \date 25 November 2002 
 * \author 
 *    Main contributors (see contributors.h for copyright, address and affiliation details)  
 *      - Stephan Wenger         
 *************************************************************************************** 
 */ 
 
 
#ifndef _NALUCOMMON_H_ 
#define _NALUCOMMON_H_ 
 
#define MAXRBSPSIZE 64000 
 
#define NALU_TYPE_SLICE    1 
#define NALU_TYPE_DPA      2 
#define NALU_TYPE_DPB      3 
#define NALU_TYPE_DPC      4 
#define NALU_TYPE_IDR      5 
#define NALU_TYPE_SEI      6 
#define NALU_TYPE_SPS      7 
#define NALU_TYPE_PPS      8 
#define NALU_TYPE_PD       9 
#define NALU_TYPE_EOSEQ    10 
#define NALU_TYPE_EOSTREAM 11 
#define NALU_TYPE_FILL     12 
 
#define NALU_PRIORITY_HIGHEST     3 
#define NALU_PRIORITY_HIGH        2 
#define NALU_PRIRITY_LOW          1 
#define NALU_PRIORITY_DISPOSABLE  0 
 
 
typedef struct  
{ 
  int startcodeprefix_len;      //! 4 for parameter sets and first slice in picture, 3 for everything else (suggested) 
  unsigned len;                 //! Length of the NAL unit (Excluding the start code, which does not belong to the NALU) 
  unsigned max_size;            //! Nal Unit Buffer size 
  int nal_unit_type;            //! NALU_TYPE_xxxx 
  int nal_reference_idc;        //! NALU_PRIORITY_xxxx 
  int forbidden_bit;            //! should be always FALSE 
  byte *buf;        //! conjtains the first byte followed by the EBSP 
} NALU_t; 
 
 
NALU_t *AllocNALU(); 
void FreeNALU(NALU_t *n); 
 
#endif