我正在尝试使用MediaCodecAPI 来解码和显示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解码器行为的信息将不胜感激。