h265parse: set interlace-mode=interleaved on interlaced content
authorGuillaume Desmottes <guillaume.desmottes@collabora.com>
Mon, 5 Oct 2020 09:07:25 +0000 (11:07 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 9 Oct 2020 10:19:52 +0000 (10:19 +0000)
interlace-mode=alternate is a special case of interlace-mode=interleaved
where the fields are split using two different buffers.

We should use the latter instead of the former to no break compat with
elements supporting only 'interleaved'.
Decoders producing alternate, such as OMX on the Zynq, should change the
interlace-mode on their output caps.

Fix https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/825

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1655>

gst/videoparsers/gsth265parse.c

index 9b9a899..09706a1 100644 (file)
@@ -2201,8 +2201,8 @@ gst_h265_parse_update_src_caps (GstH265Parse * h265parse, GstCaps * caps)
         gst_caps_set_simple (caps, "profile", G_TYPE_STRING, profile, NULL);
 
       if (sps->profile_tier_level.interlaced_source_flag)
-        gst_caps_set_simple (caps, "interlace-mode", G_TYPE_STRING, "alternate",
-            NULL);
+        gst_caps_set_simple (caps, "interlace-mode", G_TYPE_STRING,
+            "interleaved", NULL);
 
       tier = get_tier_string (sps->profile_tier_level.tier_flag);
       if (tier != NULL)