tsdemux: fix pending buffers leak when flushing

https://bugzilla.gnome.org/show_bug.cgi?id=757895
This commit is contained in:
Nicolas Huet 2015-11-10 16:32:37 +01:00 committed by Sebastian Dröge
parent a336181ef5
commit 21a025c2a1

View file

@ -1729,6 +1729,20 @@ gst_ts_demux_stream_flush (TSDemuxStream * stream, GstTSDemux * tsdemux,
stream->gap_ref_buffers = 0; stream->gap_ref_buffers = 0;
stream->gap_ref_pts = GST_CLOCK_TIME_NONE; stream->gap_ref_pts = GST_CLOCK_TIME_NONE;
stream->continuity_counter = CONTINUITY_UNSET; stream->continuity_counter = CONTINUITY_UNSET;
if (G_UNLIKELY (stream->pending)) {
GList *tmp;
GST_DEBUG ("clearing pending %p", stream);
for (tmp = stream->pending; tmp; tmp = tmp->next) {
PendingBuffer *pend = (PendingBuffer *) tmp->data;
gst_buffer_unref (pend->buffer);
g_slice_free (PendingBuffer, pend);
}
g_list_free (stream->pending);
stream->pending = NULL;
}
if (hard) { if (hard) {
stream->first_pts = GST_CLOCK_TIME_NONE; stream->first_pts = GST_CLOCK_TIME_NONE;
stream->need_newsegment = TRUE; stream->need_newsegment = TRUE;