Когда я пытаюсь декодировать необработанный поток H.264 с помощью MediaCodec на Note3 (N9005, Android 4.3), я получаю следующие ошибки:
12-25 19:57:40.362: E/ACodec(19827): [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
12-25 19:57:40.362: E/MediaCodec(19827): Codec reported an error. (omx error 0x80001009, internalError -2147483648)
12-25 19:57:40.362: W/System.err(19827): java.lang.IllegalStateException
12-25 19:57:40.362: W/System.err(19827): at android.media.MediaCodec.dequeueInputBuffer(Native Method)
Но те же коды работают на Note3 (N900) и Google Nexus 7 (2-го поколения). Вот код, на который я ссылался: http://developer.android.com/reference/android/media/MediaCodec.html PS: заголовок моего необработанного потока H.264 выглядит так:
---------------------------------------------------------------------------------------
|00 00 00 01 67 ... 00 00 00 01 68 ...00 00 00 01 65(tatol 4 slices )...00 00 00 01 61|
---------------------------------------------------------------------------------------
При необходимости могу прикрепить видеофайл с моим тестом.
CODEC_CONFIG
должен быть указан только для буфера, содержащего данные CSD (SPS/PPS), и что если вы включаете CSD как частьMediaFormat
, то вы должны просто полностью удалить этот буфер. Поведение кодековMediaCodec
плохо определено; в то время как есть тест CTS, который проверяет оба хороших пути (CSD в формате, CSD в буфере), нет ни одного, который предписывает конкретное поведение для плохих путей (CSD дважды, без CSD), поэтому поведение в этих случаях не определено. - person fadden   schedule 27.12.2013