AAC を使用して Android デバイスで M4A ファイルをデコードしようとしています。
次のコードを使用してコーデックを初期化します。
codec = avcodec_find_decoder(CODEC_ID_AAC);
c= avcodec_alloc_context();
avcodec_open(c, codec);
ただし、後で次を使用してフレームをデコードしようとすると:
len = avcodec_decode_audio3(c, (short *)mOutbuf, &out_size, &avpkt);
ログに -1 (エラーを示す) と次のメッセージが表示されます。
10-11 16:30:01.115: INFO/M4ADecoder(5260): channel element 0.0 is not allocated
10-11 16:30:02.195: INFO/M4ADecoder(5260): channel element 2.0 is not allocated
10-11 16:30:03.295: INFO/M4ADecoder(5260): channel element 0.6 is not allocated
10-11 16:30:07.645: INFO/M4ADecoder(5260): Sample rate index in program config element does not match the sample rate index configured by the container.
10-11 16:30:07.655: INFO/M4ADecoder(5260): Number of bands (3) exceeds limit (2).
コーデックをセットアップするときに他に必要な手順はありますか? データを AAC デコーダーに送信する前に、ファイルを事前に解析する必要がありますか?
同じファイルは、Mac OSX の最新の ffmpeg コード (つまり、ffmpeg -i filename.m4a") で正常に動作します。