flvmux: Return NEED_DATA when no best pad is found
authorVivia Nikolaidou <vivia@ahiru.eu>
Mon, 10 Aug 2020 17:20:04 +0000 (20:20 +0300)
committerVivia Nikolaidou <vivia@ahiru.eu>
Mon, 10 Aug 2020 17:20:04 +0000 (20:20 +0300)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/696>

gst/flv/gstflvmux.c

index dc06fc0..564f935 100644 (file)
@@ -1959,6 +1959,12 @@ gst_flv_mux_aggregate (GstAggregator * aggregator, gboolean timeout)
     }
 
     best = gst_flv_mux_find_best_pad (aggregator, &ts);
+    if (!best) {
+      if (!gst_flv_mux_are_all_pads_eos (mux))
+        return GST_AGGREGATOR_FLOW_NEED_DATA;
+      else
+        return GST_FLOW_OK;
+    }
 
     ret = gst_flv_mux_write_header (mux);
     if (ret != GST_FLOW_OK) {
@@ -2006,6 +2012,8 @@ gst_flv_mux_aggregate (GstAggregator * aggregator, gboolean timeout)
         GST_STIME_FORMAT, GST_TIME_ARGS (best->pts),
         GST_STIME_ARGS (best->dts));
   } else {
+    if (!gst_flv_mux_are_all_pads_eos (mux))
+      return GST_AGGREGATOR_FLOW_NEED_DATA;
     best_time = GST_CLOCK_STIME_NONE;
   }