ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)

《ffplay的数据结构分析》
《ffplay分析(视频解码线程的操作)》
《ffplay分析(音频解码线程的操作)》
《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》
《ffplay分析 (视频从Frame(解码后)队列取数据到SDL输出)》
《ffplay分析 (音视频同步:主时钟为音频)》
《ffplay分析 (暂停 / 播放处理)》
《ffplay分析 (seek操作处理)》

ffplay从启动到读取线程的操作分析(版本:ffmpeg-4.2.1)

  • 一、分析:
    • 1、main():初始化ffmpeg
    • 2、main():ffplay 命令行参数的解析处理
    • 3、main():SDL初始化
    • 4、main():解码器的冲刷Packet初始化
    • 5、main():SDL创建窗口
    • 6、main():打开各种流并且启动读取数据线程
    • 7、stream_open():分配VideoState保存文件名
    • 8、stream_open():初始化Frame队列(解码后)/Packet队列(解码前),初始化用于控制读取线程休眠的条件变量
    • 9、stream_open():初始化时钟、初始化音量
    • 10:stream_open():启动读取数据线程
    • 11:read_thread():初始化各个流的默认索引值、初始化ffmpeg读取中断回调函数
    • 12、read_thread():打开文件操作(avformat_open_input()、avformat_find_stream_info())
    • 13、read_thread():处理是否指定播放的起始时间和是否是实时流数据
    • 14、read_thread():设置各个流的流索引
    • 15、read_thread():设置显示窗口宽高
    • 16、read_thread():打开各个流操作
    • 17、read_thread():实时流判断设置缓冲区不限制
    • 18、read_thread():循环读取数据(判断是否请求退出、是否暂停网络流操作)
    • 19、read_thread():循环读取数据(判断是否有seek操作)
    • 20、read_thread():循环读取数据(判断video是不是attachments_pic)
    • 21、read_thread():循环读取数据(判断队列是否已经有足够的数据)
    • 22、read_thread():循环读取数据(判断是否已经播放完毕)
    • 23、read_thread():循环读取数据(执行av_read_frame()读取帧数据)
    • 24、read_thread():循环读取数据(判断帧是否在播放范围内,插入到相应的Packet(解码前)队列)
    • 25、read_thread():循环读取数据(线程退出处理)

一、分析:

1、main():初始化ffmpeg

在这里插入图片描述

2、main():ffplay 命令行参数的解析处理

在这里插入图片描述

3、main():SDL初始化

在这里插入图片描述

4、main():解码器的冲刷Packet初始化

在这里插入图片描述

5、main():SDL创建窗口

在这里插入图片描述

6、main():打开各种流并且启动读取数据线程

在这里插入图片描述

7、stream_open():分配VideoState保存文件名

在这里插入图片描述

8、stream_open():初始化Frame队列(解码后)/Packet队列(解码前),初始化用于控制读取线程休眠的条件变量

在这里插入图片描述

9、stream_open():初始化时钟、初始化音量

在这里插入图片描述

10:stream_open():启动读取数据线程

在这里插入图片描述

11:read_thread():初始化各个流的默认索引值、初始化ffmpeg读取中断回调函数

在这里插入图片描述

12、read_thread():打开文件操作(avformat_open_input()、avformat_find_stream_info())

在这里插入图片描述
在这里插入图片描述

13、read_thread():处理是否指定播放的起始时间和是否是实时流数据

在这里插入图片描述

14、read_thread():设置各个流的流索引

在这里插入图片描述

15、read_thread():设置显示窗口宽高

在这里插入图片描述

16、read_thread():打开各个流操作

在这里插入图片描述

17、read_thread():实时流判断设置缓冲区不限制

在这里插入图片描述

18、read_thread():循环读取数据(判断是否请求退出、是否暂停网络流操作)

在这里插入图片描述

19、read_thread():循环读取数据(判断是否有seek操作)

在这里插入图片描述

20、read_thread():循环读取数据(判断video是不是attachments_pic)

在这里插入图片描述

21、read_thread():循环读取数据(判断队列是否已经有足够的数据)

在这里插入图片描述

22、read_thread():循环读取数据(判断是否已经播放完毕)

在这里插入图片描述

23、read_thread():循环读取数据(执行av_read_frame()读取帧数据)

在这里插入图片描述

24、read_thread():循环读取数据(判断帧是否在播放范围内,插入到相应的Packet(解码前)队列)

在这里插入图片描述

25、read_thread():循环读取数据(线程退出处理)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发进程同步

P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。也就是不好的一方面。 V是荷兰语Verhogen(增加)的首字母。为唤醒原语,负责把一…

寄存器和pin_16x2 LCD的PIN图和寄存器

寄存器和pinIn these years the LCD is finding widespread use. It has replaced the LEDs or other multi-segment LEDs.This is due to the following reasons: 近年来, LCD正在广泛使用。 它已替换LED或其他多段LED,原因如下: The decli…

ffplay分析(视频解码线程的操作)

《ffplay的数据结构分析》 《ffplay分析(从启动到读取线程的操作)》 《ffplay分析(音频解码线程的操作)》 《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》 《ffplay分析 (视频从Fram…

【转】.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

abap 添加alv上的工具栏的按钮_Excel里的置顶功能——快速访问工具栏

100万职场人都在看后台回复礼包领199元职场干货大家好,我是小可~今天跟大家分享一个提高Excel操作效率的小技巧自定义你的快速访问工具栏设置后的效果▼▼▼也就是把你最经常用到的两三个功能放到快速访问工具栏可以一眼就找到这些功能不需要靠快捷键或者功能选项卡…

用递归法求1²+2²+...+n²的值

思路分析: 谈到递归,我个人会联想到数学里面的通式。因为递归调用的函数的对应法则是相同的。例如这道题:f(x)=x。这个就是函数通式,只不过把每个求得的结果进行累加求和即可。用户输入5的时候,会出现f(5)=5,之后再进行x减一操作,执行f(4)=4,最后将每个进行累加即可。…

编写一个函数,计算下式当n=10和n=100的值。

思路分析: 首先,我个人看法:当我拿到这道题的时候,我会把它当成一道数学题对待。分子是动的,恒为一,分母是进行依次增加的。且奇数项为正,偶数项为负。因为设计运算出现的是分数,故,设计选取存储类型为double。 找出问题: ①正负号问题、②分母问题、③累计求和问题…

POJ 1001 大数的乘法

对这道题的理解 大数的乘法 关键是 实型的 那么首先就是数出来小数点有几位这个相信很简单 从后面往前数刚开始0 不算接着就是遇到小数点结束如果没有小数点 那么置为0 接着就是输出地时候首先算出小数点的位置然后输出 你想怎么样都行 从后往前数这个时候输出 那么就是你也…

铃木uy125摩托车机油_济南铃木安徽发布国四新车—6480元瑞梦125、9380元UY125

安徽合肥,这个具有两千多年历史的古城,以“三国故地、包拯家乡”而闻名海内外,2019年4月22日济南铃木为这座城市带来一份惊喜,今年正值国四执行,济南铃木旗下两款国四新车瑞梦125与UY125正式在合肥与大家相见。济南铃木…

编写一个程序,计算用户输入的起始时间到终止时间之间相隔的天数。

思路分析: 闰年:闰年又分为普通闰年和世纪闰年 普通闰年:能被4整除且不能被100整除的为闰年(2004为闰年,1999不是闰年) 世纪闰年:能被400整除的是闰年(2020年是闰年,1900年不是闰年) 闰年共有366天&#x…

mvc的Controller返回值类型ActionResult详解

一、简介 ActionResult 操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。 以下类型从 ActionResult 派生: ContentResult EmptyResult FileResult HttpUnauthorizedResult …

栅格布局一般怎么用_建筑混凝土色差大怎么办?用这种方法处理,一般都看不出来...

由于模板锈蚀、脱模剂污染、原材料等原因,建筑混凝土成形后经常会遇到颜色不一致的现象,为此我们总结了混凝土面色差调整施工工艺,可供大家参考使用。一、混凝土面色差调整施工工艺流程及说明基层表面打磨→吸尘器吸尘→湿润墙面→素水泥处理…

FusionChart完全入门手册4

想不想打造让人震撼的图表系统,想不想做出和别人不一样的图表,从本节起,我就带领大家走入这片神奇的土地,让大家去采摘属于自己的创意之果,我们的目标是------个性无罪,个性万岁! 问题三、如何做…

ffplay分析(音频解码线程的操作)

《ffplay的数据结构分析》 《ffplay分析(从启动到读取线程的操作)》 《ffplay分析(视频解码线程的操作)》 《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》 《ffplay分析 (视频从Fram…

More Effective C++ (运算符)

4.1&#xff1a;谨慎定义类型转换函数<1>容易的方法是利用一个最新的编译器特性&#xff1a;explicit关键字<2>C编译器把">>"作为一个符号来解释&#xff0c;在两个">"间没有空格&#xff0c;语句会产生语法错误。<3>隐式类型转…

php微信获取mediaid超出限制_Python实现每日微信自动打卡

众所周知&#xff0c;因为疫情的原因&#xff0c;很多高校和公司都要求员工每日在微信上进行打卡&#xff0c;来汇报自己的当前身体状态和所处地区。但绝大多数情况下&#xff0c;每天打卡的信息其实是不会变的&#xff0c;我们要做的就是进入公众号——自动登录点进打卡页面—…

ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay分析 &#xff08;视频从Frame(解码后)队列取数据到…

pandas 根据列名索引多列数据_Pandas 数据聚合与分组运算[groupby+apply]速查笔记

利用Pandas将数据进行分组&#xff0c;并将各组进行聚合或自定义函数处理。Pandas中Groupby分组与聚合过程导入模块import pandas as pd缩写df表示Dataframe对象分组df.groupby(col1)&#xff1a; 根据col1列将df全部列分组&#xff08;默认&#xff1a;axis0行&#xff09;df[…

ffplay分析 (视频从Frame(解码后)队列取数据到SDL输出)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到…

redis 备份导出rdb_Redis数据迁移利器之redisshake

“当需要进行Redis实例或集群数据迁移时&#xff0c;我们可以采用导出/导入的方式进行数据迁移&#xff0c;但当需要做数据异地灾备或双活时&#xff0c;再使用传统的方式就不合适了&#xff0c;我们需要借助工具(如redis-port/redis-shake)来完成。”redis-shake介绍redis-sha…