日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

《ffplay的數(shù)據(jù)結(jié)構(gòu)分析》
《ffplay分析(視頻解碼線程的操作)》
《ffplay分析(音頻解碼線程的操作)》
《ffplay 分析(音頻從Frame(解碼后)隊(duì)列取數(shù)據(jù)到SDL輸出)》
《ffplay分析 (視頻從Frame(解碼后)隊(duì)列取數(shù)據(jù)到SDL輸出)》
《ffplay分析 (音視頻同步:主時(shí)鐘為音頻)》
《ffplay分析 (暫停 / 播放處理)》
《ffplay分析 (seek操作處理)》

ffplay從啟動(dòng)到讀取線程的操作分析(版本:ffmpeg-4.2.1)

  • 一、分析:
    • 1、main():初始化ffmpeg
    • 2、main():ffplay 命令行參數(shù)的解析處理
    • 3、main():SDL初始化
    • 4、main():解碼器的沖刷Packet初始化
    • 5、main():SDL創(chuàng)建窗口
    • 6、main():打開各種流并且啟動(dòng)讀取數(shù)據(jù)線程
    • 7、stream_open():分配VideoState保存文件名
    • 8、stream_open():初始化Frame隊(duì)列(解碼后)/Packet隊(duì)列(解碼前),初始化用于控制讀取線程休眠的條件變量
    • 9、stream_open():初始化時(shí)鐘、初始化音量
    • 10:stream_open():啟動(dòng)讀取數(shù)據(jù)線程
    • 11:read_thread():初始化各個(gè)流的默認(rèn)索引值、初始化ffmpeg讀取中斷回調(diào)函數(shù)
    • 12、read_thread():打開文件操作(avformat_open_input()、avformat_find_stream_info())
    • 13、read_thread():處理是否指定播放的起始時(shí)間和是否是實(shí)時(shí)流數(shù)據(jù)
    • 14、read_thread():設(shè)置各個(gè)流的流索引
    • 15、read_thread():設(shè)置顯示窗口寬高
    • 16、read_thread():打開各個(gè)流操作
    • 17、read_thread():實(shí)時(shí)流判斷設(shè)置緩沖區(qū)不限制
    • 18、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否請求退出、是否暫停網(wǎng)絡(luò)流操作)
    • 19、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否有seek操作)
    • 20、read_thread():循環(huán)讀取數(shù)據(jù)(判斷video是不是attachments_pic)
    • 21、read_thread():循環(huán)讀取數(shù)據(jù)(判斷隊(duì)列是否已經(jīng)有足夠的數(shù)據(jù))
    • 22、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否已經(jīng)播放完畢)
    • 23、read_thread():循環(huán)讀取數(shù)據(jù)(執(zhí)行av_read_frame()讀取幀數(shù)據(jù))
    • 24、read_thread():循環(huán)讀取數(shù)據(jù)(判斷幀是否在播放范圍內(nèi),插入到相應(yīng)的Packet(解碼前)隊(duì)列)
    • 25、read_thread():循環(huán)讀取數(shù)據(jù)(線程退出處理)

一、分析:

1、main():初始化ffmpeg

2、main():ffplay 命令行參數(shù)的解析處理

3、main():SDL初始化

4、main():解碼器的沖刷Packet初始化

5、main():SDL創(chuàng)建窗口

6、main():打開各種流并且啟動(dòng)讀取數(shù)據(jù)線程

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

8、stream_open():初始化Frame隊(duì)列(解碼后)/Packet隊(duì)列(解碼前),初始化用于控制讀取線程休眠的條件變量

9、stream_open():初始化時(shí)鐘、初始化音量

10:stream_open():啟動(dòng)讀取數(shù)據(jù)線程

11:read_thread():初始化各個(gè)流的默認(rèn)索引值、初始化ffmpeg讀取中斷回調(diào)函數(shù)

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


13、read_thread():處理是否指定播放的起始時(shí)間和是否是實(shí)時(shí)流數(shù)據(jù)

14、read_thread():設(shè)置各個(gè)流的流索引

15、read_thread():設(shè)置顯示窗口寬高

16、read_thread():打開各個(gè)流操作

17、read_thread():實(shí)時(shí)流判斷設(shè)置緩沖區(qū)不限制

18、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否請求退出、是否暫停網(wǎng)絡(luò)流操作)

19、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否有seek操作)

20、read_thread():循環(huán)讀取數(shù)據(jù)(判斷video是不是attachments_pic)

21、read_thread():循環(huán)讀取數(shù)據(jù)(判斷隊(duì)列是否已經(jīng)有足夠的數(shù)據(jù))

22、read_thread():循環(huán)讀取數(shù)據(jù)(判斷是否已經(jīng)播放完畢)

23、read_thread():循環(huán)讀取數(shù)據(jù)(執(zhí)行av_read_frame()讀取幀數(shù)據(jù))

24、read_thread():循環(huán)讀取數(shù)據(jù)(判斷幀是否在播放范圍內(nèi),插入到相應(yīng)的Packet(解碼前)隊(duì)列)

25、read_thread():循環(huán)讀取數(shù)據(jù)(線程退出處理)

總結(jié)

以上是生活随笔為你收集整理的ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。