Android で MediaCodec API を使用して AAC ストリームをデコードしようとしています。(生の AAC です。) MediaFormat.createAudioFormat() を使用して、MediaCodec.configure() に渡すフォーマット オブジェクトを作成しようとしましたが、AAC (audio/mp4a-latm) を使用するとエラーが発生し続けました。(MP3 (オーディオ/mpeg) でも動作しますが...)
最後に、AAC ファイル用の MediaExtractor を作成し、それが生成するフォーマット オブジェクトを調べました。両方とも値が 0x12 の 2 バイトで構成される ByteBuffer のキー「csd-0」が含まれていることがわかりました。AAC コーデックの構成に使用したフォーマット オブジェクトにそのキーと値を含めると、すべてが機能します。
何が起こっているのか誰にも分かりますか?ドキュメントには、そのキーを構成するべきではないと記載されています。MediaExtractor を使用してフォーマット オブジェクトを生成せずに AAC ファイルをデコードするための MediaCodec の例へのポインタを持っている人はいますか?