gpt4 book ai didi

android - 是否可以使用 stagefright 创建多个 OMXCodec 实例

转载 作者:行者123 更新时间:2023-11-29 21:47:27 26 4
gpt4 key购买 nike

我想在android 手机中使用libstagefright.so 进行媒体操作。我探索了 this 中给出的示例页。我一直在尝试实现相同的。在为多个 OMXCodec 实例测试此实现时,它的输出缓冲区相互冲突。

我在eclipse中开发了一个android项目,并在JNI下链接了libstagefright。我添加了两个类 CustomDataSource(派生 MediaSource)和 CustomOmxDecoderCustomDataSource 类实现了 MediaSource 的所有虚方法。在 CustomOmxDecoder 类中,我调用了 OMXCodec::Create 方法。然后我创建了两个线程,它们具有 CustomOmxDecoder 的单独实例。使用此实例,我调用了一个方法 ProcessNextFrame,我在其中调用了主要的 videoDecoder->read() 方法。这就是我的设置。

现在,当我使用上述设置运行应用程序时。 OMXCodec 解码两个源的帧,但是当我在表面上渲染它时,显示出冲突的输出。似乎两个源的解码缓冲区在内部以某种方式相互融合。我正在同时创建两个 h264 解码器。这可能是什么问题?它可能与 MediaBufferGroup 有关吗?我在 CustomDataSource 中获取缓冲区,并在调用 videoDecoder->read() 调用后在 CustomOmxDecoderProcessNextFrame 中释放缓冲区。

任何建议都会很棒。谢谢。

最佳答案

我已经测试并解决了我的问题,怀疑 OMXCodec 的多个实例是否可行。问题出在我的代码中。在修复时,我可以看到 OMXCodec 的多个实例运行稳定流畅。所以,是的,OMXCodec 的多个实例是可能的。

谢谢大家

关于android - 是否可以使用 stagefright 创建多个 OMXCodec 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15430350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com