2017-05-26 71 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