最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

init output stream初始化輸出流源碼分析

 更新時間:2022年10月31日 08:58:51   作者:Loken1  
這篇文章主要為大家介紹了init output stream初始化輸出流源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

init_output_stream() 是一個公共的函數(shù),無論是音頻,還是視頻的輸出流的初始化,都是通過它來完成的。

init_output_stream() 上面還會套一個 wrapper ,主要是做一些簡單的封裝,例如已經(jīng)初始化了,就直接返回,代碼如下:

音頻 OutputStream初始化

音頻 OutputStream 的初始化主要有兩個地方。

1, 如果是 stream copy,不進行編解碼,就是在 transcode_init() 里面如下:

從上圖可以看到,如果不進行編解碼,音頻,視頻的輸出流,都是在 transcode_init() 里面初始化的。

2, 濾鏡模式,進行了編解碼,就是在 reap_filter() 里 初始化音頻的輸出流的,如下:

音頻的輸出流可以在未從濾鏡讀取到 AVFrame 的時候就開始初始化,而視頻的輸出流的初始化,需要從濾鏡拿到 AVFrame 之后才能初始化,視頻的初始化是在 封裝在do_video_out() 函數(shù)里面的。

至于為什么音頻輸出流需要提前初始化,可以看一下他的注釋,我沒細看。

init_output_stream() 函數(shù)其實沒有太多的重點,主要就是設(shè)置編碼器參數(shù),然后打開編碼器,再設(shè)置一下 OutputStream 的一些字段,就初始化完成了。

不過 OutputStream 有一個字段特別重要,就是 initialized ,如下:

這個 initialized 特別重要,只有輸出文件里面的所有輸出流,包括音頻跟視頻流,他們的 initialized 都是 1,才能調(diào) avformat_write_header() 函數(shù)寫入頭部信息,

因為 init_output_stream() 會對 AVStream 設(shè)置一些信息,例如編碼信息等等。

必須設(shè)置完這些信息,initialized 全部都是 1,才能調(diào) avformat_write_header()。

因此,如果音頻輸出流沒初始化完成,那視頻流的 AVPacket 就不能寫入文件,必須先寫到隊列緩存下來,如下:

init_output_stream() 函數(shù)流程圖

以上就是init output stream初始化輸出流源碼分析的詳細內(nèi)容,更多關(guān)于init output stream初始化輸出流的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Kotlin淺析延遲初始化與密封類的實現(xiàn)方法

    Kotlin淺析延遲初始化與密封類的實現(xiàn)方法

    Kotlin語言的許多特性,包括變量不可變,變量不可為空,等等。這些特性都是為了盡可能地保證程序安全而設(shè)計的,但是有些時候這些特性也會在編碼時給我們帶來不少的麻煩,下面我們來了解延遲初始化和密封類的特點
    2022-08-08
  • Android曲線更圓滑的簽名畫板

    Android曲線更圓滑的簽名畫板

    這篇文章主要為大家詳細介紹了Android曲線更圓滑的簽名畫板,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android Caused by: java.lang.ClassNotFoundException解決辦法

    Android Caused by: java.lang.ClassNotFoundException解決辦法

    這篇文章主要介紹了Android Caused by: java.lang.ClassNotFoundException解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • android push推送相關(guān)基本問答總結(jié)

    android push推送相關(guān)基本問答總結(jié)

    現(xiàn)在網(wǎng)上一大堆的關(guān)于推送方面的實現(xiàn)原理:1.通過pull(拉),也就是通過客戶端主動定時輪詢服務(wù)器請求數(shù)據(jù)。2.通過push(推),服務(wù)器通過一個長連接主動推送消息到客戶端。這兩個方式都可以實現(xiàn)推送功能。pull這個方式?jīng)]什么問題好理解。
    2015-05-05
  • Android 不解壓直接讀取zip包的方法

    Android 不解壓直接讀取zip包的方法

    下面小編就為大家分享一篇Android 不解壓直接讀取zip包的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • android判斷動畫已結(jié)束示例代碼

    android判斷動畫已結(jié)束示例代碼

    添加一個動畫效果,發(fā)現(xiàn)動畫沒執(zhí)行完 就直接跳轉(zhuǎn)或者finish掉,添加動畫監(jiān)聽事件即可,示例代碼如下
    2014-10-10
  • Android PickerView底部選擇框?qū)崿F(xiàn)流程詳解

    Android PickerView底部選擇框?qū)崿F(xiàn)流程詳解

    本次主要介紹Android中底部彈出框的使用,使用兩個案例來說明,首先是時間選擇器,然后是自定義底部彈出框的選擇器,以下來一一說明他們的使用方法
    2022-09-09
  • Android實現(xiàn)兩臺手機屏幕共享和遠程控制功能

    Android實現(xiàn)兩臺手機屏幕共享和遠程控制功能

    在遠程協(xié)助、在線教學(xué)、技術(shù)支持等多種場景下,實時獲得另一部移動設(shè)備的屏幕畫面,并對其進行操作,具有極高的應(yīng)用價值,本項目旨在實現(xiàn)兩臺 Android 手機之間的屏幕共享與遠程控制,需要的朋友可以參考下
    2025-04-04
  • Android實現(xiàn)可復(fù)用的選擇頁面

    Android實現(xiàn)可復(fù)用的選擇頁面

    這篇文章主要為大家詳細介紹了Android實現(xiàn)可復(fù)用的選擇頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android編程實現(xiàn)圖片透明的方法

    Android編程實現(xiàn)圖片透明的方法

    這篇文章主要介紹了Android編程實現(xiàn)圖片透明的方法,涉及Android針對圖片布局及屬性相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-03-03

最新評論

浮梁县| 常山县| 灵寿县| 阿坝| 屯门区| 拉萨市| 日照市| 游戏| 昌宁县| 桐梓县| 三明市| 高密市| 西安市| 云林县| 余江县| 新建县| 永城市| 西平县| 宜昌市| 莒南县| 萝北县| 宣化县| 双柏县| 鹤峰县| 上杭县| 光泽县| 拜泉县| 松江区| 佛学| 晋城| 剑河县| 梓潼县| 深泽县| 南江县| 河曲县| 盐亭县| 清河县| 南木林县| 威远县| 介休市| 县级市|