encodebin: Allow streamheader update when profile.allow_dynamic_output == FALSE
authorThibault Saunier <tsaunier@gnome.org>
Tue, 26 Jan 2016 18:23:04 +0000 (19:23 +0100)
committerThibault Saunier <tsaunier@gnome.org>
Wed, 27 Jan 2016 11:58:23 +0000 (12:58 +0100)
Some encoders can update the stream header through time (for example
vp8 might do that) but it does not strictly changes the output format.

gst/encoding/gstencodebin.c

index 69d37ea..baf8171 100644 (file)
@@ -1100,12 +1100,18 @@ _outfilter_caps_set_cb (GstPad * outfilter_sinkpad,
     GParamSpec * arg G_GNUC_UNUSED, StreamGroup * group)
 {
   GstCaps *caps;
+  GstStructure *structure;
 
   g_object_get (outfilter_sinkpad, "caps", &caps, NULL);
+  caps = gst_caps_copy (caps);
+
+  structure = gst_caps_get_structure (caps, 0);
+  gst_structure_remove_field (structure, "streamheader");
   GST_INFO_OBJECT (group->ebin, "Forcing caps to %" GST_PTR_FORMAT, caps);
   g_object_set (group->outfilter, "caps", caps, NULL);
   g_signal_handler_disconnect (outfilter_sinkpad, group->outputfilter_caps_sid);
   group->outputfilter_caps_sid = 0;
+  gst_caps_unref (caps);
 }
 
 static void