ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)
生活随笔
收集整理的這篇文章主要介紹了
ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《ffplay的數據結構分析》
《ffplay分析(從啟動到讀取線程的操作)》
《ffplay分析(視頻解碼線程的操作)》
《ffplay分析(音頻解碼線程的操作)》
《ffplay分析 (視頻從Frame(解碼后)隊列取數據到SDL輸出)》
《ffplay分析 (音視頻同步:主時鐘為音頻)》
《ffplay分析 (暫停 / 播放處理)》
《ffplay分析 (seek操作處理)》
《ffplay源碼(版本:ffmpeg-4.2.1)》
ffplay 分析(音頻從Frame(解碼后)隊列取數據到SDL輸出)
- 一、分析:
- 1、audio_open():設置期望使用到SDL的音頻參數
- 2、audio_open():使用期望的音頻打開SDL設備
- 3、audio_open():判斷打開SDL設備后參數的變化
- 4、audio_open():保存SDL設備使用的音頻參數
- 5、sdl_audio_callback():SDL音頻讀取回調函數(判斷待拷貝到SDL的緩沖區(is->audio_buf)中是否有數據,否則調用audio_decode_frame()添加數據到is->audio_buf)
- 6、audio_decode_frame():從Frame(解碼后)隊列中獲取一幀數據
- 7、audio_decode_frame():獲取這一幀數據的大小(字節)如果不用重采樣操作就將這個數據和數據長度返回上一層了
- 8、audio_decode_frame():獲取同步調整后采樣數和判斷是否需要重采樣的操作
- 9、audio_decode_frame():需要重采樣情況下,設置重采樣的輸入輸入緩沖區
- 10、audio_decode_frame():需要重采樣情況下,設置開啟重采樣的補嘗功能
- 11、audio_decode_frame():需要重采樣情況下,分配重采樣輸出緩沖區內存
- 12、audio_decode_frame():需要重采樣情況下,調用swr_convert()進行重采樣操作
- 13、audio_decode_frame():需要重采樣情況下,將重采樣緩沖區設置到is->audio_buf
- 13、audio_decode_frame():不需要重采樣情況下,將重采樣緩沖區設置到is->audio_buf
- 14、audio_decode_frame():設置音頻時鐘相關
- 15、sdl_audio_callback():將數據拷貝到SDL緩沖區中設置播放,并更新讀取操作的位置索引
- 16、sdl_audio_callback():最后音頻時鐘設置
一、分析:
1、audio_open():設置期望使用到SDL的音頻參數
2、audio_open():使用期望的音頻打開SDL設備
3、audio_open():判斷打開SDL設備后參數的變化
4、audio_open():保存SDL設備使用的音頻參數
5、sdl_audio_callback():SDL音頻讀取回調函數(判斷待拷貝到SDL的緩沖區(is->audio_buf)中是否有數據,否則調用audio_decode_frame()添加數據到is->audio_buf)
6、audio_decode_frame():從Frame(解碼后)隊列中獲取一幀數據
7、audio_decode_frame():獲取這一幀數據的大小(字節)如果不用重采樣操作就將這個數據和數據長度返回上一層了
8、audio_decode_frame():獲取同步調整后采樣數和判斷是否需要重采樣的操作
9、audio_decode_frame():需要重采樣情況下,設置重采樣的輸入輸入緩沖區
10、audio_decode_frame():需要重采樣情況下,設置開啟重采樣的補嘗功能
11、audio_decode_frame():需要重采樣情況下,分配重采樣輸出緩沖區內存
12、audio_decode_frame():需要重采樣情況下,調用swr_convert()進行重采樣操作
13、audio_decode_frame():需要重采樣情況下,將重采樣緩沖區設置到is->audio_buf
13、audio_decode_frame():不需要重采樣情況下,將重采樣緩沖區設置到is->audio_buf
14、audio_decode_frame():設置音頻時鐘相關
15、sdl_audio_callback():將數據拷貝到SDL緩沖區中設置播放,并更新讀取操作的位置索引
16、sdl_audio_callback():最后音頻時鐘設置
總結
以上是生活随笔為你收集整理的ffplay 分析(音频从Frame(解码后)队列取数据到SDL输出)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 寒武纪剧情介绍
- 下一篇: ffplay分析 (视频从Frame(解