首页 > 代码库 > 转)x264重要结构体详细说明(2): x264_image_t、x264_picture_t、x264_nal_t
转)x264重要结构体详细说明(2): x264_image_t、x264_picture_t、x264_nal_t
转自:http://nkwavelet.blog.163.com/blog/static/2277560382013102923912753/
x264_nal_t中的数据在下一次调用x264_encoder_encode之后就无效了,因此必须在调用
x264_encoder_encode 或 x264_encoder_headers 之前使用或拷贝其中的数据。
*****************************************************************************************************************/
typedef struct
{
int i_ref_idc; // Nal的优先级
int i_type; // Nal的类型
int b_long_startcode; // 是否采用长前缀码0x00000001
int i_first_mb; // 如果Nal为一条带,则表示该条带第一个宏块的指数
int i_last_mb; // 如果Nal为一条带,则表示该条带最后一个宏块的指数
int i_payload; // payload 的字节大小
uint8_t *p_payload; // 存放编码后的数据,已经封装成Nal单元
} x264_nal_t;
cli_opt_t结构体主要记录一些与编码关系较小的设置信息,其变量可通过读取main()的参数获得。
*****************************************************************************************************************/
typedef struct
{
int b_progress; // bool类型的变量,用来控制是否显示编码进度。取值为0或1。
int i_seek; // 整数类型 表示开始从哪一帧开始编码。
// 因为不一定从文件的第一帧开始编码,这是可以控制的。
/* hnd_t(hnd=handle)是一个空指针, 定义在x264cli.h 中。void *在C语言里空指针是有几个
特性的,它是一个一般化指针,可以指向任何一种类型,但却不能解引用,需要解引
用的时候,需要进行强制转换。采用空指针的策略,是为了声明变量的简便和统一。 */
hnd_t hin; // 指向输入yuv文件的指针
hnd_t hout; // 指向编码过后生成的文件的指针。
/* 一个指向文件类型的指针,它是文本文件,其每一行的格式是 :framenum frametye
QP用于强制指定某些帧或者全部帧的帧类型和QP(quant param量化参数)的值. */
FILE *qpfile;
} cli_opt_t;
转)x264重要结构体详细说明(2): x264_image_t、x264_picture_t、x264_nal_t