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

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

一、分析:

(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()暂停与播放时的时钟控制处理

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37599645/article/details/113569704