www.pudn.com > JM86.rar > nalucommon.h, change:2004-09-16,size:2777b


/********************************************************************** 
 * Software Copyright Licensing Disclaimer 
 * 
 * This software module was originally developed by contributors to the 
 * course of the development of ISO/IEC 14496-10 for reference purposes 
 * and its performance may not have been optimized.  This software 
 * module is an implementation of one or more tools as specified by 
 * ISO/IEC 14496-10.  ISO/IEC gives users free license to this software 
 * module or modifications thereof. Those intending to use this software 
 * module in products are advised that its use may infringe existing 
 * patents.  ISO/IEC have no liability for use of this software module 
 * or modifications thereof.  The original contributors retain full 
 * rights to modify and use the code for their own purposes, and to 
 * assign or donate the code to third-parties. 
 * 
 * This copyright notice must be included in all copies or derivative 
 * works.  Copyright (c) ISO/IEC 2004. 
 **********************************************************************/ 
 
/*! 
 ************************************************************************************** 
 * \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        <stewe@cs.tu-berlin.de> 
 *************************************************************************************** 
 */ 
 
 
#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_AUD      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