From 320bc6362b44a11771f856a520a1b4f0a25c2dfa Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Mon, 31 Aug 2020 17:17:56 +0200 Subject: [PATCH] mpegtsmux: Avoid crash when best pad gets flushed The 'best' pad might receive a flush event between us picking it and us popping the buffer. In this case, the buffer will be missing. Similar to https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711 Part-of: --- subprojects/gst-plugins-bad/gst/mpegtsmux/gstbasetsmux.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/subprojects/gst-plugins-bad/gst/mpegtsmux/gstbasetsmux.c b/subprojects/gst-plugins-bad/gst/mpegtsmux/gstbasetsmux.c index e312ff017e..844a4ea48c 100644 --- a/subprojects/gst-plugins-bad/gst/mpegtsmux/gstbasetsmux.c +++ b/subprojects/gst-plugins-bad/gst/mpegtsmux/gstbasetsmux.c @@ -2294,6 +2294,10 @@ gst_base_ts_mux_aggregate (GstAggregator * agg, gboolean timeout) GstBuffer *buffer; buffer = gst_aggregator_pad_pop_buffer (GST_AGGREGATOR_PAD (best)); + if (!buffer) { + /* We might have gotten a flush event after we picked the pad */ + goto done; + } ret = gst_base_ts_mux_aggregate_buffer (GST_BASE_TS_MUX (agg),