首先解释一下cli_opt_t的这个_t代表结构图可能是type的意思。同时还有很多i_ b_等作为前缀的变量,其中的I_表示int类型的变量 b表示bool类型的。依次类推。
正式进入主题。
typedef struct{
int b_progress;
int i_seek;
hnd_t hin;
hnd_t hout;
FILE *qpfile;
} cli_opt_t;
此结构体是记录一些与编码关系较小的设置信息的opt=option。结构体内部的变量都可以通过读取main()的参数获得。也就是argv。
b_progress表示一个bool类型的变量,看参数帮助 也就是x264--help你会知道,他是用来控制是否显示编码进度的一个东西。取值为0,1.
I_seek 整数类型 表示开始从哪一帧编码。因为不一定从这个文件的第一帧开始编码,这是可以控制的。
Hnd_t(hnd=handle)是一个空指针, void*在C语言里空指针是有几个特性的,他是一个一般化指针,可以指向任何一种类型,但却不能解引用,需要解引用的时候,需要进行强制转换。采用空指针的策略,应该是为了声明变量的简便和统一。
Hin 指向输入yuv文件的指针。
Hout 指向编码过后生成的文件的指针。
Qpfile 是一个指向文件类型的指针,他是文本文件,其每一行的格式是framenum frametype QP
用于强制指定某些帧或者全部帧的帧类型和QP(quant param量化参数)的值。