0

我使用 Android 媒体编解码器 API 来解码一些视频。许多使用过 API 的人都会发现,在不同设备上使用时,它非常不灵活。我在这里遇到的是,当使用三星 Galaxy S3 的美国(I747)版本时,解码器以 COLOR_QCOM_FormatYUV420SemiPlanar 格式返回像素缓冲区。

我之前已经考虑过许多​​不同的格式,包括 YUV420SemiPlanar(android 中的颜色代码 21),它们工作得很好,但我无法弄清楚这一个中的像素缓冲区。我期待一个高度 * 宽度 Y 平面,然后是 U,然后是 V,但无济于事。

以前有人用过这种格式吗?非常感谢任何帮助!

谢谢

4

1 回答 1

0

在 Jellybean 中,MediaCodec解码器输出格式可以是专有的。不仅格式说明没有发布,而且将来可能会发生变化。

在 Android 4.3 (API 18) 中,添加了一些 CTS 测试以确认,如果解码器以少数“通用”格式之一生成输出,则缓冲区内容看起来是合理的。这有点弱,对所有设备都没有帮助。

如果您可以改为使用 Surfaces,那么 API 18 中的新功能可能会派上用场。可以在此处找到一些示例和新 CTS 测试的说明和链接。

于 2013-07-24T23:32:01.673 回答