adaptivedemux: do not flush the input pad
authorFlorin Apostol <florin.apostol@oregan.net>
Wed, 11 Nov 2015 17:24:33 +0000 (17:24 +0000)
committerThiago Santos <thiagoss@osg.samsung.com>
Fri, 15 Jan 2016 14:32:37 +0000 (11:32 -0300)
gst_adaptive_demux_stream_clear_eos_and_flush_state() function will do
all the necessary cleaning.

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

gst-libs/gst/adaptivedemux/gstadaptivedemux.c

index 26dd67b..6e6b45e 100644 (file)
@@ -2427,24 +2427,11 @@ gst_adaptive_demux_stream_download_uri (GstAdaptiveDemux * demux,
     ret = GST_FLOW_CUSTOM_ERROR;
   }
 
-  /* flush the proxypads so that the EOS state is reset */
-  gst_pad_push_event (stream->src_srcpad, gst_event_new_flush_start ());
-
-  /* sending flush stop event will serialiase on stream->src_srcpad.
-   * But the _src_chain function will first get the pad lock and then the
-   * manifest lock, so we cannot hold the manifest lock here while
-   * we will try to get the pad lock (taking locks in reversing order
-   * will lead to deadlock)
-   *
-   * In conclusion, we need to release the manifest lock before flushing
-   */
-  GST_MANIFEST_UNLOCK (demux);
-
-  gst_pad_push_event (stream->src_srcpad, gst_event_new_flush_stop (TRUE));
-
   /* changing src element state might try to join the streaming thread, so
    * we must not hold the manifest lock.
    */
+  GST_MANIFEST_UNLOCK (demux);
+
   gst_element_set_state (stream->src, GST_STATE_READY);
 
   GST_MANIFEST_LOCK (demux);