项允超图片:p_get_frame_total函数指针
来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 16:00:19
p_get_frame_total函数指针
原型:int (*P_get_frame_total ) (hnd_t handle)
所指函数包括:
get_frame_total_yuv
get_frame_total_avis
get_frame_total_v4m
get_frame_total_thread
以get_frame_total_yuv为例:
int get_frame_total_yuv( hnd_t handle )
{
yuv_input_t *h = handle;
int i_frame_total = 0;
if( !fseek( h->fh, 0, SEEK_END ) )
{
uint64_t i_size = ftell( h->fh );
fseek( h->fh, 0, SEEK_SET );
i_frame_total = (int)(i_size / ( h->width * h->height * 3 / 2 ));
}
return i_frame_total;
}
顾名思义,此函数yuv_input-t图像帧总数,此处介绍fseek与ftell函数
ftell()函数
原型: long ftell(FILE *fp)
功能:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数。如:ban=ftell(fp); 是获取fp指定的文件的当前读写位置,并将其值传给变量ban。
Fseek()函数
原型: int fseek(FILE *fp,long offset,int origin);
功能:把fp的文件读写位置指针移到指定的位置。如:fseek(fp,20,SEEK_SET);意思是把fp文件读写位置指针从文件开始后移20个字节。
fseek函数与ftell函数结合使用:可以用fseek函数把位置指针移到文件尾,再用ftell函数获得这时位置指针距文件头的字节数,这个字节数就是文件的长度。