美文网首页iOS
av_read_frame 主要执行函数

av_read_frame 主要执行函数

作者: 只为此心无垠 | 来源:发表于2018-01-20 10:32 被阅读47次

1. av_read_frame

2. -> read_frame_internal

3. -> ff_read_packet

4. -> (s->iformat->read_packet) ,相当于调用flv_read_packet,AVInputFormat,这一步完成了AVFormatContext到AVIOContext格式
5. -> av_get_packet ,(AVIOContext *s, AVPacket *pkt, int size)

6. -> append_packet_chunked

7. -> avio_read

其中,第4步中,(s->iformat->read_packet)是对应的demuxer,比如对于mp4文件用的是mov_read_packet. demuxer会解析出下一帧需要多少byte, av_get_packet负责把需要的数据读出来,放到AVPacket中.

第7步,avio_read中,在libavformat/aviobuf.c中

  1. 如果AVIOContext中的数据够,AVPacket从AVIOContext中拷贝数据
    1、read_packet_wrapper
    2、 →read_packet ,(void *opaque, uint8_t *buf, int buf_size)
    3、 →memcpy ,memcpy指的是c和c++使用的内存拷贝函数,(void *dest, const void *src, size_t n)memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

  2. 如果不够,则调用fill_buffer把buffer填满
    1、read_packet_wrapper
    2、→ len = s->read_packet(s->opaque, buf, size);
    http://blog.csdn.net/xiruanliuwei/article/details/27376697,这一步完成了AVIOContext到URLContext的格式转化。每一次格式转换都会经历一次方法的muxer或demuxer。

实际会调用ffurl_read函数
3、retry_transfer_wrapper
4、rtmp_read或http_read 或file_read

1、http://blog.csdn.net/tomorrow_opal/article/details/54670153

2、https://my.oschina.net/u/2326611/blog/800675

相关文章

  • av_read_frame 主要执行函数

    1. av_read_frame 2. -> read_frame_internal 3. -> ff_read_...

  • iOS - 优化App冷启动速度

    1. App的启动分为三个主要阶段: main()函数执行前 main()函数执行后(从main函数执行,到设置s...

  • 启动优化

    启动优化 App启动主要包括三个阶段: main函数执行前 main函数执行后 首屏渲染完成后 main函数执行前...

  • js()()匿名自执行函数

    js匿名自执行函数的写法为()(),主要是用与编写js插件,使用自执行函数能够确保该函数能够自行执行,而不需要而外...

  • iOS App启动优化思路

    用户能感知到的启动时长主要是在“main函数执行前”、“main函数执行后到首屏渲染完成”的阶段。 main函数执...

  • App启动速度优化.----<iOS开发高手课>笔记

    App的启动主要包括三个阶段: main()函数执行前; main()函数执行后; 首屏渲染完成后. main()...

  • Promise(then/catch)

    主要谈及: 是什么,怎么做,如何实现 一、setTimeout函数依次执行的传统方法 二、实现异步函数的顺序执行 ...

  • 函数防抖和函数节流

    概念 函数防抖和函数节流的目的都是降低回调执行频率,节约资源,控制函数的执行的次数 函数防抖: 主要应用在事件被...

  • 关于js里面的this理解

    在这里主要主要解释的都是函数中的thisjs中的this代表的是当前函数执行的主体;1.this是谁和函数在哪里定...

  • Handler

    一、Handler简单使用 二、源码中的执行过程 Handler的主要函数 MessageQueue的执行过程en...

网友评论

    本文标题:av_read_frame 主要执行函数

    本文链接:https://www.haomeiwen.com/subject/hmnzoxtx.html