summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2021-06-14 16:04:52 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2021-06-14 16:33:15 -0400
commit4ac9f919216e567642f9e91c42061c163b1fec02 (patch)
tree6874388cda2dda3035c67eb31a5baa48d1c163f5 /gst
parenta71ec17cf0f966335fe6904399202722460c182d (diff)
downloadgstreamer-plugins-bad-4ac9f919216e567642f9e91c42061c163b1fec02.tar.gz
alphadecodebin: Fix stall due to QoS
alphacombine element is a simple element that assumes buffers are always paired, or at least that missing buffers are signalled with a GAP. The QoS implementation in the GstVideoDecoder base class allow decoders dropping frames independently and that could lead to stall in alphacombine. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2326>
Diffstat (limited to 'gst')
-rw-r--r--gst/codecalpha/gstalphadecodebin.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gst/codecalpha/gstalphadecodebin.c b/gst/codecalpha/gstalphadecodebin.c
index 9f0a0a3f1..16b62858c 100644
--- a/gst/codecalpha/gstalphadecodebin.c
+++ b/gst/codecalpha/gstalphadecodebin.c
@@ -138,6 +138,11 @@ gst_alpha_decode_bin_constructed (GObject * obj)
goto cleanup;
}
+ /* We disable QoS on decoders because we need to maintain frame pairing in
+ * order for alphacombine to work. */
+ g_object_set (decoder, "qos", FALSE, NULL);
+ g_object_set (alpha_decoder, "qos", FALSE, NULL);
+
alphacombine = gst_element_factory_make ("alphacombine", NULL);
if (!alphacombine) {
priv->missing_element = "alphacombine";