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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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输出)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。