《ffplay的数据结构分析》
《ffplay分析(从启动到读取线程的操作)》
《ffplay分析(视频解码线程的操作)》
《ffplay分析(音频解码线程的操作)》
《ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)》
《ffplay分析 (视频从Frame(解码后)队列取数据到SDL输出)》
《ffplay分析 (音视频同步:主时钟为音频)》
《ffplay分析 (seek操作处理)》
《ffplay源码(版本:ffmpeg-4.2.1)》

ffplay分析 (暂停 / 播放处理)

  • 一、分析:
    • 1、read_thread():线程读取线程暂停时的操作
    • 2、audio_decode_frame():sdl_audio_callback()调用audio_decode_frame()判断is->paused
    • 3、sdl_audio_callback():SDL回调函数根据audio_decode_frame()返回值写入空白数据到SDL
    • 4、video_refresh():判断paused不进行显示下一帧
    • 5、event_loop():(暂停 / 播放控制)SDLK_p、SDLK_SPACE事件处理
    • 6、stream_toggle_pause():(暂停 / 播放控制)stream_toggle_pause()暂停与播放时的时钟控制处理

一、分析:

(1)读取数据线程暂停时:根据Packet队列是否达到特定的大小后就不再继续读取数据。

(2)音频播放线程暂停时:根据paused标志判断写入空白数据到SDL。

(3)视频播放线程暂停时:根据paused标志判断不继续显示下一帧。

1、read_thread():线程读取线程暂停时的操作

2、audio_decode_frame():sdl_audio_callback()调用audio_decode_frame()判断is->paused

3、sdl_audio_callback():SDL回调函数根据audio_decode_frame()返回值写入空白数据到SDL


4、video_refresh():判断paused不进行显示下一帧

5、event_loop():(暂停 / 播放控制)SDLK_p、SDLK_SPACE事件处理


6、stream_toggle_pause():(暂停 / 播放控制)stream_toggle_pause()暂停与播放时的时钟控制处理

ffplay分析 (暂停 / 播放处理)相关推荐

  1. ffplay分析 (seek操作处理)

    <ffplay的数据结构分析> <ffplay分析(从启动到读取线程的操作)> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的 ...

  2. ffplay分析 (音视频同步:主时钟为音频)

    <ffplay的数据结构分析> <ffplay分析(从启动到读取线程的操作)> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的 ...

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

    <ffplay的数据结构分析> <ffplay分析(从启动到读取线程的操作)> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的 ...

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

    <ffplay的数据结构分析> <ffplay分析(从启动到读取线程的操作)> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的 ...

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

    <ffplay的数据结构分析> <ffplay分析(从启动到读取线程的操作)> <ffplay分析(音频解码线程的操作)> <ffplay 分析(音频从Fra ...

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

    <ffplay的数据结构分析> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的操作)> <ffplay 分析(音频从Frame ...

  7. 【音频处理】Polyphone 样本编辑 和 样本工具 ( 波形图 | 信息 | 频率分析 | 均衡器 | 播放器 | 终点裁剪 | 自动循环节 | 空白移除 | 音量 平衡 音调 调整 )

    文章目录 一. Polyphone 工具简介 1. 相关参考资料 2. 简要介绍 (1) 软件界面 二. 音源编辑 1. 波形图 ( 1 ) 波形图样式 ( 2 ) 波形图操作 2. 信息 ( 1 ) ...

  8. js控制audio音量_js控制html5 audio音频暂停播放

    js控制html5 audio音频暂停播放 音乐控制 音乐 播放/暂停 重新播放 function rbf(){ var audio = document.getElementById('music1 ...

  9. live555 源码分析:播放启动

    本文分析 live555 中,流媒体播放启动,数据开始通过 RTP/RTCP 传输的过程. 如我们在 live555 源码分析:子会话 SETUP 中看到的,一个流媒体子会话的播放启动,由 Strea ...

最新文章

  1. C#里面Console.Write与Console.WriteLine有什么区别????
  2. kafka系列文章索引
  3. BZOJ 2157: 旅游
  4. android xml获取指定,android:如何从xml文件中获取信息?
  5. Sub-process /usr/bin/dpkg returned an error code (1)解决办法
  6. java 开发帮助_java的简单编程请帮助
  7. 如何应对数据匮乏,试试冷启动阶段开发的风险评分
  8. 为什么Python是数据科学领域最受欢迎的语言之一?
  9. HP-UX 中配置Trusted System
  10. 很久很久之前的一道面试题(老师的生日是那一天?)~
  11. HashMap工作原理和扩容机制
  12. ghost方式批量安装win7
  13. 按键精灵上传账号到服务器_按键精灵云备份上传自己的脚本教程(图文)
  14. Matlab 除法取整
  15. android图标分组名称唯美简单可复制,分组名称唯美简短的
  16. 六种用JavaScript检测出当前浏览器是否是无头浏览器( selenium headless browser)
  17. 计算机考数学一英语二的学校,【专硕】初试考数学一的学校统计
  18. node scripts/install.js 安装失败解决办法
  19. 上帝模式下的shellcode
  20. 树莓派 arch linux,给树莓派安装ArchLinux

热门文章

  1. h5 神策埋点_咕咚技术总监唐平麟:神策使我们的数据平台成本降低约 75%,迭代效率提升 2~3 倍...
  2. JS之 if语句函数 对接事件动作 函数更改css css对接需要换妆的区id或class
  3. 盒模型的属性丶display显示丶浮动
  4. 错误1083:配置成在该可执行程序中运行的这个服务不能执行该服务 【解决办法】...
  5. Thonny -- 简洁的 python 轻量级 IDE
  6. cocos2dx 3.x 蒙板 遮罩 点击圆功能
  7. Gson解析Json格式数据
  8. ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework
  9. Cassandra1.2文档学习(7)—— 规划集群部署
  10. 调用WindowsAPI显示帮助提示