splitmuxsrc: Mark running=false on shutdown.
authorJan Schmidt <jan@centricular.com>
Thu, 29 Oct 2020 16:36:51 +0000 (03:36 +1100)
committerJan Schmidt <thaytan@noraisin.net>
Sat, 31 Oct 2020 02:50:51 +0000 (02:50 +0000)
Make sure that any late gst_element_call_async() callbacks
know that the elements is shutting down and bail out instead
of operating on the element we're trying to stop.

Fixes a spurious test failure in elements_splitmuxsrc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798>

gst/multifile/gstsplitmuxsrc.c

index 69be9ff..23a8c97 100644 (file)
@@ -993,7 +993,7 @@ gst_splitmux_src_stop (GstSplitMuxSrc * splitmux)
   SPLITMUX_SRC_LOCK (splitmux);
   if (!splitmux->running)
     goto out;
-
+  splitmux->running = FALSE;
   GST_DEBUG_OBJECT (splitmux, "Stopping");
 
   SPLITMUX_SRC_UNLOCK (splitmux);
@@ -1028,7 +1028,6 @@ gst_splitmux_src_stop (GstSplitMuxSrc * splitmux)
   splitmux->num_parts = 0;
   splitmux->num_prepared_parts = 0;
   splitmux->num_created_parts = 0;
-  splitmux->running = FALSE;
   splitmux->total_duration = GST_CLOCK_TIME_NONE;
   /* Reset playback segment */
   gst_segment_init (&splitmux->play_segment, GST_FORMAT_TIME);