From 18aeb5bac1862e9f3da45ca2587ad2fe2b9c5fe4 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 22 Jul 2020 14:31:13 -0400 Subject: [PATCH] matroskamux: Do caps renegotiation when it only adds fields Matroskamux can accept caps renegotiation if the new caps is a superset of the old one, meaning upstream added new info to the caps. Same logic as a5f22f03aa25b04726f78ae619f40b3b648f7d48 in qtmux. Part-of: --- gst/matroska/matroska-mux.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index b99dd71c1e..3d3a233fbe 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -970,9 +970,10 @@ gst_matroska_mux_video_pad_setcaps (GstPad * pad, GstCaps * caps) if ((old_caps = gst_pad_get_current_caps (pad))) { if (mux->state >= GST_MATROSKA_MUX_STATE_HEADER - && !gst_caps_is_equal (caps, old_caps)) { + && !gst_caps_is_subset (caps, old_caps)) { GST_ELEMENT_ERROR (mux, STREAM, MUX, (NULL), - ("Caps changes are not supported by Matroska")); + ("Caps changes are not supported by Matroska\nCurrent: `%" + GST_PTR_FORMAT "`\nNew: `%" GST_PTR_FORMAT "`", old_caps, caps)); gst_caps_unref (old_caps); goto refuse_caps; }