VM14에 나와있는 NAL 유닛 구조입니다.
실제 스트림으로 나오는 것을 캡쳐 해보면, startcode(32bit), NAL Header(8bit)
RBSP 로 이루어 짐을 알 수 있습니다.
typedef struct
{
int startcodeprefix_len;
unsigned len;
unsigned max_size;
NaluType nal_unit_type;
NalRefIdc nal_reference_idc;
int forbidden_bit;
byte *buf;
} NALU_t;
typedef enum {
NALU_PRIORITY_HIGHEST = 3,
NALU_PRIORITY_HIGH = 2,
NALU_PRIORITY_LOW = 1,
NALU_PRIORITY_DISPOSABLE = 0
} NalRefIdc;
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;