MediaCodec API Androidのタイムアウト
-
23-12-2019 - |
質問
私は私のアプリの1つでMediaCodec APIを使用しています。私はBigFlakeからコードを使いました、そしてアプリはかなり元気です。しかし、APIリファレンスで読み込んだ後も、timeoutUs
と関数dequeueInputBuffer()
の両方でパラメータdequeueOutputBuffer()
を理解することはできません。
誰かがこのパラメーターの使用と効果をうまく説明することができればそれは素晴らしいでしょう。上記の関数呼び出しの両方で同じであるべきですか?
解決
welyのアイデアは、内部的に、MediaCodec Layerコンポーネントの下には非同期は非同期です。そのため、dequeueInputBuffer()
またはdequeueOutputBuffer()
を呼び出すと、ACTUALL作業が行われている場合は、呼び出し側のスレッドが行われ、レスポンスの準備ができているかタイムアウトが発生するまで、選択したタイムアウト中に内部コンポーネントの状態を確認するだけです。
私の経験からさえバッファ割り当ては非同期であるため、Dequeueの準備ができていない場合...小さいタイムアウトはinfo_try_again_laterになる可能性があります。しかし、主にそれは\ encodingをデコードするためです。入力フレームをブロックしていないコールで処理するために入力フレームを送信し、処理が別のスレッドで発生し、ノンブロッキングコールでも出力フレームの準備が確認されます。そのため、すべてのPiplineは重い(復号化\ Encoding \ ETC)操作ごとに眠らず、その他の操作を実行できます
所属していません StackOverflow