summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-10-14 19:24:22 +0300
committerSebastian Dröge <sebastian@centricular.com>2015-10-20 10:12:32 +0300
commit65c7214237a5dccbd57cf43437f9f3a26bc2e742 (patch)
treec0f7fe25e034d55db81ed25c918444ae6424ef1d
parentdf11e84fcd6bf4f2dbee735ee9cfb18d41cbf20f (diff)
downloadgstreamer-plugins-bad-65c7214237a5dccbd57cf43437f9f3a26bc2e742.tar.gz
amcvideodec: Implement support for COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView for decoding
https://bugzilla.gnome.org/show_bug.cgi?id=756578
-rw-r--r--sys/androidmedia/gstamc.c3
-rw-r--r--sys/androidmedia/gstamcvideodec.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/sys/androidmedia/gstamc.c b/sys/androidmedia/gstamc.c
index 88dc96808..078e28a3b 100644
--- a/sys/androidmedia/gstamc.c
+++ b/sys/androidmedia/gstamc.c
@@ -1989,6 +1989,7 @@ static const struct
COLOR_QCOM_FormatYUV420SemiPlanar, GST_VIDEO_FORMAT_NV12}, {
COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka, GST_VIDEO_FORMAT_NV12}, {
COLOR_QCOM_FormatYVU420SemiPlanar32m, GST_VIDEO_FORMAT_NV12}, {
+ COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView, GST_VIDEO_FORMAT_NV12}, {
COLOR_OMX_SEC_FormatNV12Tiled, GST_VIDEO_FORMAT_NV12}, {
COLOR_FormatYCbYCr, GST_VIDEO_FORMAT_YUY2}, {
COLOR_FormatYV12, GST_VIDEO_FORMAT_YV12}
@@ -2216,6 +2217,7 @@ gst_amc_color_format_info_set (GstAmcColorFormatInfo * color_format_info,
}
case COLOR_QCOM_FormatYUV420SemiPlanar:
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
+ case COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView:
case COLOR_FormatYUV420SemiPlanar:{
if (stride == 0 || slice_height == 0) {
GST_ERROR ("Stride or slice height is 0");
@@ -2397,6 +2399,7 @@ gst_amc_color_format_copy (GstAmcColorFormatInfo * cinfo,
}
case COLOR_QCOM_FormatYUV420SemiPlanar:
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
+ case COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView:
case COLOR_FormatYUV420SemiPlanar:{
gint i, j, height;
gint c_stride, v_stride;
diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c
index eb30e7adc..68700df9f 100644
--- a/sys/androidmedia/gstamcvideodec.c
+++ b/sys/androidmedia/gstamcvideodec.c
@@ -535,6 +535,12 @@ gst_amc_video_dec_set_src_caps (GstAmcVideoDec * self, GstAmcFormat * format)
output_state = gst_video_decoder_set_output_state (GST_VIDEO_DECODER (self),
gst_format, width, height, self->input_state);
+ /* FIXME: Special handling for multiview, untested */
+ if (color_format == COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView) {
+ gst_video_multiview_video_info_change_mode (&output_state->info,
+ GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM, GST_VIDEO_MULTIVIEW_FLAGS_NONE);
+ }
+
self->format = gst_format;
if (!gst_amc_color_format_info_set (&self->color_format_info,
klass->codec_info, mime, color_format, width, height, stride,