nalucommon.h
资源名称:chapter15.rar [点击查看]
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:2k
源码类别:
Audio
开发平台:
Visual C++
- /*!
- **************************************************************************************
- * file
- * nalucommon.h
- * brief
- * NALU handling common to encoder and decoder
- * author
- * Main contributors (see contributors.h for copyright, address and affiliation details)
- * - Stephan Wenger <stewe@cs.tu-berlin.de>
- * - Karsten Suehring <suehring@hhi.de>
- ***************************************************************************************
- */
- #ifndef _NALUCOMMON_H_
- #define _NALUCOMMON_H_
- #define MAXRBSPSIZE 64000
- //! values for nal_unit_type
- typedef enum {
- NALU_TYPE_SLICE = 1,
- NALU_TYPE_DPA = 2,
- NALU_TYPE_DPB = 3,
- NALU_TYPE_DPC = 4,
- NALU_TYPE_IDR = 5,
- NALU_TYPE_SEI = 6,
- NALU_TYPE_SPS = 7,
- NALU_TYPE_PPS = 8,
- NALU_TYPE_AUD = 9,
- NALU_TYPE_EOSEQ = 10,
- NALU_TYPE_EOSTREAM = 11,
- NALU_TYPE_FILL = 12
- } NaluType;
- //! values for nal_ref_idc
- typedef enum {
- NALU_PRIORITY_HIGHEST = 3,
- NALU_PRIORITY_HIGH = 2,
- NALU_PRIORITY_LOW = 1,
- NALU_PRIORITY_DISPOSABLE = 0
- } NalRefIdc;
- //! NAL unit structure
- 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
- NaluType nal_unit_type; //!< NALU_TYPE_xxxx
- NalRefIdc nal_reference_idc; //!< NALU_PRIORITY_xxxx
- int forbidden_bit; //!< should be always FALSE
- byte *buf; //!< contains the first byte followed by the EBSP
- } NALU_t;
- //! allocate one NAL Unit
- NALU_t *AllocNALU(int);
- //! free one NAL Unit
- void FreeNALU(NALU_t *n);
- #endif