NAL单元的数据结构:
typedef struct
{
} x264_nal_t;
比特流的数据结构:
typedef struct bs_s
{
}
x264结构体中对于输出数据的结构定义:
上面,x264.out中可以包含若干个nal单元,每个nal单元记录其本身的数据长度和数据存储的地址,x264.out中还包含一个bs单元,该单元用来比特流的写入操作,因为编码之后的数据常常以比特的形式出现,需要将之变换成字节、字型的数据进行存储。
数据在比特流中的存储通过三个函数来完成
bs_init:设置bs->p=bs->start=out->p_bitstream
x264_nal_start:初始化nal单元的数据结构,指定nal->p_payload等于p_bitstream的当前起始位置
x264_xxx_write:写入数据到bs-.>p,同时bs->p相应的增长
x264_nal_end:使用bs->p – bs->p_start得到写完该NAL的在p_bitstream中的位置,用该位置-nal->p_payload得到数据的长度。