summaryrefslogtreecommitdiff
path: root/sys/androidmedia/gstamcvideodec.c
diff options
context:
space:
mode:
authorChen Jie <chenj@lemote.com>2013-06-07 14:06:56 +0800
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2013-06-07 11:08:52 +0200
commita36c9c1cc9db978808288604714fd4170575733a (patch)
treec6bd174d2aa25dabf8f2ca60c371770831bad685 /sys/androidmedia/gstamcvideodec.c
parent0a496f4167490a048c8dcde4f2f8999621592a5b (diff)
downloadgstreamer-plugins-bad-a36c9c1cc9db978808288604714fd4170575733a.tar.gz
androidmedia: Hacks for HuaweiMediaPad which reports wrong color format
COLOR_FormatYCbYCr is reported but it is actually COLOR_TI_FormatYUV420PackedSemiPlanar.
Diffstat (limited to 'sys/androidmedia/gstamcvideodec.c')
-rw-r--r--sys/androidmedia/gstamcvideodec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c
index 18c733446..a464521d4 100644
--- a/sys/androidmedia/gstamcvideodec.c
+++ b/sys/androidmedia/gstamcvideodec.c
@@ -698,6 +698,7 @@ gst_amc_video_dec_set_src_caps (GstAmcVideoDec * self, GstAmcFormat * format)
gint crop_left, crop_right;
gint crop_top, crop_bottom;
GstVideoFormat gst_format;
+ GstAmcVideoDecClass *klass = GST_AMC_VIDEO_DEC_GET_CLASS (self);
if (!gst_amc_format_get_int (format, "color-format", &color_format) ||
!gst_amc_format_get_int (format, "width", &width) ||
@@ -706,6 +707,10 @@ gst_amc_video_dec_set_src_caps (GstAmcVideoDec * self, GstAmcFormat * format)
return FALSE;
}
+ if (strcmp (klass->codec_info->name, "OMX.k3.video.decoder.avc") &&
+ color_format == COLOR_FormatYCbYCr)
+ color_format = COLOR_TI_FormatYUV420PackedSemiPlanar;
+
if (!gst_amc_format_get_int (format, "stride", &stride) ||
!gst_amc_format_get_int (format, "slice-height", &slice_height)) {
GST_ERROR_OBJECT (self, "Failed to get stride and slice-height");