Support more QCOM specific color formats for Android HW decoder.
BUG=b/31483393 Review-Url: https://codereview.webrtc.org/2349843002 Cr-Commit-Position: refs/heads/master@{#14359}
This commit is contained in:
@ -78,16 +78,23 @@ public class MediaCodecVideoDecoder {
|
||||
// List of supported HW H.264 decoders.
|
||||
private static final String[] supportedH264HwCodecPrefixes =
|
||||
{"OMX.qcom.", "OMX.Intel.", "OMX.Exynos." };
|
||||
|
||||
// NV12 color format supported by QCOM codec, but not declared in MediaCodec -
|
||||
// see /hardware/qcom/media/mm-core/inc/OMX_QCOMExtns.h
|
||||
private static final int
|
||||
COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m = 0x7FA30C04;
|
||||
private static final int COLOR_QCOM_FORMATYVU420PackedSemiPlanar32m4ka = 0x7FA30C01;
|
||||
private static final int COLOR_QCOM_FORMATYVU420PackedSemiPlanar16m4ka = 0x7FA30C02;
|
||||
private static final int COLOR_QCOM_FORMATYVU420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03;
|
||||
private static final int COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m = 0x7FA30C04;
|
||||
// Allowable color formats supported by codec - in order of preference.
|
||||
private static final List<Integer> supportedColorList = Arrays.asList(
|
||||
CodecCapabilities.COLOR_FormatYUV420Planar,
|
||||
CodecCapabilities.COLOR_FormatYUV420SemiPlanar,
|
||||
CodecCapabilities.COLOR_QCOM_FormatYUV420SemiPlanar,
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar32m4ka,
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar16m4ka,
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar64x32Tile2m8ka,
|
||||
COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m);
|
||||
|
||||
private int colorFormat;
|
||||
private int width;
|
||||
private int height;
|
||||
|
||||
@ -28,8 +28,10 @@ namespace webrtc_jni {
|
||||
|
||||
#define TAG_COMMON "MediaCodecVideo"
|
||||
|
||||
// Color formats supported by encoder - should mirror supportedColorList
|
||||
// from MediaCodecVideoEncoder.java
|
||||
// Color formats supported by encoder or decoder - should include all
|
||||
// colors from supportedColorList in MediaCodecVideoEncoder.java and
|
||||
// MediaCodecVideoDecoder.java. Supported color format set in encoder
|
||||
// and decoder could be different.
|
||||
enum COLOR_FORMATTYPE {
|
||||
COLOR_FormatYUV420Planar = 0x13,
|
||||
COLOR_FormatYUV420SemiPlanar = 0x15,
|
||||
@ -38,6 +40,9 @@ enum COLOR_FORMATTYPE {
|
||||
// see /hardware/qcom/media/mm-core/inc/OMX_QCOMExtns.h
|
||||
// This format is presumably similar to COLOR_FormatYUV420SemiPlanar,
|
||||
// but requires some (16, 32?) byte alignment.
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar32m4ka = 0x7FA30C01,
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar16m4ka = 0x7FA30C02,
|
||||
COLOR_QCOM_FORMATYVU420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03,
|
||||
COLOR_QCOM_FORMATYUV420PackedSemiPlanar32m = 0x7FA30C04
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user