asfdemux: Remove old pads when new ones are added
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 9 Nov 2009 18:02:05 +0000 (15:02 -0300)
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 9 Nov 2009 18:02:05 +0000 (15:02 -0300)
The old pads were being removed before adding the new ones,
we should add the new ones first.

Fixes #599718

gst/asfdemux/gstasfdemux.c

index 63941ba..f2d0d99 100644 (file)
@@ -834,9 +834,6 @@ gst_asf_demux_chain_headers (GstASFDemux * demux)
   if (flow != GST_FLOW_OK)
     goto parse_failed;
 
-  /* release old pads (only happens on chained asfs) */
-  gst_asf_demux_release_old_pads (demux);
-
   /* calculate where the packet data starts */
   demux->data_offset = obj.size + 50;
 
@@ -1066,9 +1063,6 @@ gst_asf_demux_pull_headers (GstASFDemux * demux)
     goto parse_failed;
   }
 
-  /* release old pads (only happens on chained asfs) */
-  gst_asf_demux_release_old_pads (demux);
-
   /* calculate where the packet data starts */
   demux->data_offset = demux->base_offset + obj.size + 50;
 
@@ -1209,6 +1203,8 @@ gst_asf_demux_check_activate_streams (GstASFDemux * demux, gboolean force)
     }
   }
 
+  gst_asf_demux_release_old_pads (demux);
+
   demux->activated_streams = TRUE;
   GST_LOG_OBJECT (demux, "signalling no more pads");
   gst_element_no_more_pads (GST_ELEMENT (demux));