libstagefright.so
Androidフォンでメディア操作に使用したい。この ページに記載されている例を調べました。私は同じことを実装しようとしています。この実装を複数の OMXCodec
インスタンスでテストしているときに、出力バッファーが互いに競合します。
私はEclipseでAndroidプロジェクトを開発し、libstagefright
JNIでリンクしました。2 つのクラスCustomDataSource
(派生するMediaSource
) とを追加しましCustomOmxDecoder
た。CustomDataSource
クラスは のすべての仮想メソッドを実装しますMediaSource
。CustomOmxDecoder
クラスでは、メソッドを呼び出しますOMXCodec::Create
。次に、の個別のインスタンスを持つ 2 つのスレッドを作成しましたCustomOmxDecoder
。このインスタンスを使用してProcessNextFrame
、メインvideoDecoder->read()
メソッドを呼び出すメソッドを呼び出します。これが私の設定です。
さて、上記の設定でアプリを実行すると。OMXCodec
両方のソースのフレームをデコードしますが、表面にレンダリングすると、競合する出力が表示されます。両方のソースのデコードされたバッファが何らかの形で内部的に噛み合っているようです。2 つの h264 デコーダーを同時に作成しています。ここで何が問題になる可能性がありますか?に関連できますMediaBufferGroup
か?call を呼び出した後、 buffer inを取得しCustomDataSource
、 buffer in を解放しCustomOmxDecoder
ます。ProcessNextFrame
videoDecoder->read()
どんな提案も素晴らしいでしょう。ありがとう。