博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FFmpeg avio_alloc_context函数剖析
阅读量:6489 次
发布时间:2019-06-24

本文共 855 字,大约阅读时间需要 2 分钟。

函数原型

AVIOContext *avio_alloc_context(

                  unsigned char *buffer,

                  int buffer_size,

                  int write_flag,

                  void *opaque,

                  int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),

                  int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),

                  int64_t (*seek)(void *opaque, int64_t offset, int whence))

{

    //创建一个AVIOContext结构体

    AVIOContext *s = av_mallocz(sizeof(AVIOContext));

    if (!s)

        return NULL;

    //初始化AVIOContext结构体

    ffio_init_context(s, buffer, buffer_size, write_flag, opaque,

                  read_packet, write_packet, seek);

    return s;

}


#define BUF_SIZE    1024*16

AVIOContext* pAVIOContext = avio_alloc_context(pAVIOContext, BUF_SIZE, 0, this, ReadInputData, NULL, NULL);

ReadInputData函数将赋值给read_packet,当调用avcodec_send_packet函数,将会从ReadInputData读取指定的的BUF_SIZE

来进行分帧解析



疑问

设置FFmpeg读缓存区的大小,应该怎么设置比较合理

     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/2055849,如需转载请自行联系原作者

你可能感兴趣的文章
Oracle查询用户信息相关指令
查看>>
命令方式升级ESXi主机补丁包
查看>>
wget 下载jdk
查看>>
详细介绍思科的VTY
查看>>
双十二超人学院送福利
查看>>
人生就是放弃和选择
查看>>
OpenMP编程->调度优化
查看>>
WIN32汇编基础
查看>>
Oracle自适应共享游标
查看>>
Can't connect to local MySQL server through socket
查看>>
软考信息系统监理师2016年3月18日作业
查看>>
Spring boot中使用log4j记录日志
查看>>
Linux之文本处理工具-sed
查看>>
coco2d-x实现场景跳转
查看>>
中国大陆开源镜像站汇总
查看>>
集群之LVS的详细介绍
查看>>
Oracle11g Data Guard物理备用数据库搭建与配置(第1部分 主数据库实例创建)
查看>>
maven工程 看不到Maven dependencies
查看>>
27次课(sed)
查看>>
EMP框架下使用ireport生成PDF报表
查看>>