2017-05-26 94 views
0

當音頻編解碼器是Opus時,一些額外的參數對我們的整合非常重要。Cobalt包Opus如何追蹤?

有沒有辦法獲得編解碼器延遲,尋求預卷和編解碼器私人?

當SB_API_VERSION不低於SB_AUDIO_SPECIFIC_CONFIG_AS_POINTER少,「編解碼器私」的作品已經被傳遞到右舷。

由於我不是很確定音頻樣本是否使用'編解碼器延遲'和'搜索預卷'進行預處理,音頻解碼器是否沒有必要使用這些?

回答

0

Opus元數據存儲在AudioDecoderConfig :: extra_data()中,並通過SbMediaAudioHeader :: audio_specific_config傳遞給SbPlayerCreate()。 您可以使用類似於「media/filters/opus_audio_decoder.cc」中的ParseOpusHeader函數的代碼來解析它。

不幸的是| audio_specific_config |是COBALT_9中8個字節的數組,缺少Opus元數據的額外字節。有幾種解決方案: 1.刪除對Opus的支持,因爲它根據2017年的要求是可選的。改用aac。 2.使用不需要元數據的Opus解碼器。 3.等到COBALT_11被釋放,其中版本的大小限制爲| audio_specific_config |已移除。但是這可能不適用於您的2017年發佈計劃。 4.將SbMediaAudioHeader :: audio_specific_config的大小增加到更大的數字(比如1024)。這會讓你的未來變得更加困難。

+0

感謝您的信息和建議。我想擴大配置並嘗試解析它。 –

+0

值得注意的是,在你進行這樣的修改之後,你可能不得不在升級到鈷11時手動解決衝突。但我期望這項工作是微不足道的。 – xiaoming