mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-04 09:42:19 +00:00
amcvideodec: Implement support for COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView for decoding
https://bugzilla.gnome.org/show_bug.cgi?id=756578
This commit is contained in:
parent
9d92326fe5
commit
b48524c357
2 changed files with 9 additions and 0 deletions
|
@ -1989,6 +1989,7 @@ static const struct
|
||||||
COLOR_QCOM_FormatYUV420SemiPlanar, GST_VIDEO_FORMAT_NV12}, {
|
COLOR_QCOM_FormatYUV420SemiPlanar, GST_VIDEO_FORMAT_NV12}, {
|
||||||
COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka, GST_VIDEO_FORMAT_NV12}, {
|
COLOR_QCOM_FormatYUV420PackedSemiPlanar64x32Tile2m8ka, GST_VIDEO_FORMAT_NV12}, {
|
||||||
COLOR_QCOM_FormatYVU420SemiPlanar32m, 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_OMX_SEC_FormatNV12Tiled, GST_VIDEO_FORMAT_NV12}, {
|
||||||
COLOR_FormatYCbYCr, GST_VIDEO_FORMAT_YUY2}, {
|
COLOR_FormatYCbYCr, GST_VIDEO_FORMAT_YUY2}, {
|
||||||
COLOR_FormatYV12, GST_VIDEO_FORMAT_YV12}
|
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_FormatYUV420SemiPlanar:
|
||||||
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
|
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
|
||||||
|
case COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView:
|
||||||
case COLOR_FormatYUV420SemiPlanar:{
|
case COLOR_FormatYUV420SemiPlanar:{
|
||||||
if (stride == 0 || slice_height == 0) {
|
if (stride == 0 || slice_height == 0) {
|
||||||
GST_ERROR ("Stride or slice height is 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_FormatYUV420SemiPlanar:
|
||||||
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
|
case COLOR_QCOM_FormatYVU420SemiPlanar32m:
|
||||||
|
case COLOR_QCOM_FormatYVU420SemiPlanar32mMultiView:
|
||||||
case COLOR_FormatYUV420SemiPlanar:{
|
case COLOR_FormatYUV420SemiPlanar:{
|
||||||
gint i, j, height;
|
gint i, j, height;
|
||||||
gint c_stride, v_stride;
|
gint c_stride, v_stride;
|
||||||
|
|
|
@ -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),
|
output_state = gst_video_decoder_set_output_state (GST_VIDEO_DECODER (self),
|
||||||
gst_format, width, height, self->input_state);
|
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;
|
self->format = gst_format;
|
||||||
if (!gst_amc_color_format_info_set (&self->color_format_info,
|
if (!gst_amc_color_format_info_set (&self->color_format_info,
|
||||||
klass->codec_info, mime, color_format, width, height, stride,
|
klass->codec_info, mime, color_format, width, height, stride,
|
||||||
|
|
Loading…
Reference in a new issue