qtmux: set src pads when starting file
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Thu, 13 Jan 2011 14:27:36 +0000 (15:27 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 12 Apr 2011 19:32:20 +0000 (20:32 +0100)
... rather than at _init time, so they are also available following a
pad (de)activation cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=639338

gst/quicktime/gstqtmux.c

index 0ac1e91..1477db7 100644 (file)
@@ -469,13 +469,9 @@ gst_qt_mux_init (GstQTMux * qtmux, GstQTMuxClass * qtmux_klass)
 {
   GstElementClass *klass = GST_ELEMENT_CLASS (qtmux_klass);
   GstPadTemplate *templ;
-  GstCaps *caps;
 
   templ = gst_element_class_get_pad_template (klass, "src");
   qtmux->srcpad = gst_pad_new_from_template (templ, "src");
-  caps = gst_caps_copy (gst_pad_get_pad_template_caps (qtmux->srcpad));
-  gst_pad_set_caps (qtmux->srcpad, caps);
-  gst_caps_unref (caps);
   gst_pad_use_fixed_caps (qtmux->srcpad);
   gst_element_add_pad (GST_ELEMENT (qtmux), qtmux->srcpad);
 
@@ -1578,9 +1574,14 @@ static GstFlowReturn
 gst_qt_mux_start_file (GstQTMux * qtmux)
 {
   GstFlowReturn ret = GST_FLOW_OK;
+  GstCaps *caps;
 
   GST_DEBUG_OBJECT (qtmux, "starting file");
 
+  caps = gst_caps_copy (gst_pad_get_pad_template_caps (qtmux->srcpad));
+  gst_pad_set_caps (qtmux->srcpad, caps);
+  gst_caps_unref (caps);
+
   /* let downstream know we think in BYTES and expect to do seeking later on */
   gst_pad_push_event (qtmux->srcpad,
       gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0));