0

デバイスで ExoPlayer デモ アプリを実行しようとしましたが、次の問題が発生しました。

outputIndex = codec.dequeueOutputBuffer(outputBufferInfo, 0);

常に -1 を返します。

stackoverflow ですべての質問と回答を表示しましたが、何も役に立ちませんでした。MediaFormat の csd-0 および csd-1 バッファーに sps および pps ヘッダーを設定し (開始コードありとなしで試しました)、1 つのバッファー csd-0 に設定し、MediaCodec.BUFFER_FLAG_CODEC_CONFIG で queueInputBuffer と呼ばれ、タイムアウトを 10000 に変更し、さらに-1に。他のデバイスではすべてが機能しますが、必要な場所では機能しません。デコーダ - OMX.amlogic.avc.decoder.awesome

EDIT タイムアウトを-1に設定すると、何も起こらず、dequeueOutputBufferを待ちますが、logcatは次のように表示します:

Warning message AMessage(what = 'omx ', target = 5) = {
int32_t type = 0
void *node = 0x51
int32_t event = 2130706433
int32_t data1 = 0
int32_t data2 = 0
} unhandled in root state.

編集 2: amlogic デコーダーの出力バッファー サイズが入力よりも小さいことがわかりました。しかし、ビデオが常に表示される他のデバイスでは、状況は逆です。出力バッファ サイズが大きくなります。大切ですか?

多分誰かが同じ問題を抱えていましたか?コーデック仕様ですか?他に何を試す必要がありますか?

4

0 に答える 0