我想libstagefright.so
在安卓手机中使用媒体操作。我已经探索了此 页面中给出的示例。我一直在尝试实施相同的方法。在为多个实例测试此实现时 OMXCodec
,它的输出缓冲区相互冲突。
我在eclipse中开发了一个android项目并libstagefright
在JNI下链接。我添加了两个类CustomDataSource
(派生MediaSource
)和CustomOmxDecoder
. CustomDataSource
类实现了所有的虚方法MediaSource
。在CustomOmxDecoder
课堂上,我调用OMXCodec::Create
方法。然后我创建了两个具有单独实例的线程CustomOmxDecoder
。使用这个实例,我调用了一个方法ProcessNextFrame
,在该方法中我调用了 mainvideoDecoder->read()
方法。这就是我的设置。
现在,当我使用上述设置运行应用程序时。OMXCodec
解码两个源的帧,但是当我在表面上渲染它时,会显示冲突的输出。似乎两个源的解码缓冲区都以某种方式在内部进行了网格化。我正在同时创建两个 h264 解码器。这里有什么问题?会不会有关系MediaBufferGroup
?调用 call 后,我在's中获取CustomDataSource
缓冲区并释放缓冲区。CustomOmxDecoder
ProcessNextFrame
videoDecoder->read()
任何建议都会很棒。谢谢。