Использование Android MediaCodec для декодирования видеопотока MPEG2

Я пытаюсь использовать MediaCodec API для декодирования и отображения MPEG2 закодированный поток. я использую MediaExtractor извлечь поток из транспортного потока MPEG (TS).

Я замечаю что configure() сбой декодера на всех устройствах, которые я пробовал - Nexus7(2012), Nexus7(2013), Nexus10, с кодом ошибки 0x80001001.

Единственный параметр, который может ошибиться при использовании configure() API является MediaFormat Конфигурация предоставлена, и это получено от Android MediaExtractor, Я не понимаю, что может пойти не так, что привело к тому, что эту проблему заметили.

Параметры конфигурации, присутствующие в MediaFormat Объектом являются:

            1. `CSD-0` - Containing Sequence header and sequence extension header.

                            Seq_Hdr    - 00 00 01 B3 2D 01 E0 24 09 C4 23 80 

                            Seq_extnsn - 00 00 01 B5 14 8A 00 01 00 80

            2. Height - 480

            3. Width - 720

            4. KEY_MIME - `video/mpeg2`

Ошибка в некоторой степени похожа на все устройства, что может означать, что ошибка, возможно, происходит от общего объекта в MediaCodec стек. Здесь ошибка от Nexus7 (2013). (0x80001001 - OMX_ErrorUndefined)

E/ACodec  ( 6504): [OMX.qcom.video.decoder.mpeg2] configureCodec returning error -1010
E/MediaCodec( 6504): Codec reported an error. (omx error 0x80001001, internalError -1010)

Это поведение, потому что MPEG2 не является обязательным кодек для поддержки на платформах Android или я делаю что-то не так? Любая информация о поведении MPEG2 декодер будет с благодарностью.

1 ответ

На вашем устройстве посмотрите на /system/etc/media_codecs.xml чтобы увидеть список.

Насколько я понимаю, на современных устройствах Nexus сжатие видео MPEG-2 не поддерживается.

Другие вопросы по тегам