int open_file_yuv( char *psz_filename, hnd_t *p_handle, x264_param_t *p_param )

本文深入探讨了YUV文件操作过程中的关键步骤,包括如何使用yuv_input_t结构体进行初始化,以及如何通过不同的文件路径打开YUV文件。详细解释了文件打开时的条件判断和错误处理机制,确保开发者能够熟练掌握YUV文件处理的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
raw 420 yuv file operation(操作)
打开一个文件,已经文件路径
*/
int open_file_yuv( char *psz_filename, hnd_t *p_handle, x264_param_t *p_param )
{
    yuv_input_t *h = malloc(sizeof(yuv_input_t));//申请一块内存给yuv_input_t结构体用,内存地址存到h
 /*对结构体字段赋值*/
 h->width = p_param->i_width;
    h->height = p_param->i_height;
    h->next_frame = 0;

    if( !strcmp(psz_filename, "-") )
        h->fh = stdin;//这句应该是代表文件已经打开,这儿只需接收这个句柄/地址
    else
        h->fh = fopen(psz_filename, "rb");/* 打开一个文件 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中 */
           //rb 以只读方式打开文件,该文件必须存在,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件
    if( h->fh == NULL )//文件打开失败
        return -1;

    *p_handle = (hnd_t)h;//把此处打开的文件的指针传出去,左边的p_handle在调本函数时以参数方式提供过来

    printf("文件名:%s\n",psz_filename);//zjh
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值