qtdemux: Don't stop task when resetting

This is a regression that was introduced in
cca2f555d1 (yes, 9 years ago).

The only place where a demuxer streaming thread should be stopped is when the
sinkpad is deactivated from pull mode (i.e. PAUSED->READY).

Attempting to stop the task in this function would cause this to happen when a
FLUSH_STOP or STREAM_START event is received... which can cause deadlocks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3109>
This commit is contained in:
Edward Hervey 2022-07-27 11:19:50 +02:00 committed by Edward Hervey
parent 237b063843
commit f2a1769236

View file

@ -1985,7 +1985,6 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
gint i;
GST_DEBUG_OBJECT (qtdemux, "Resetting demux");
gst_pad_stop_task (qtdemux->sinkpad);
if (hard || qtdemux->upstream_format_is_time) {
qtdemux->state = QTDEMUX_STATE_INITIAL;