mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-10 01:54:11 +00:00
qtdemux: reset reused QtDemuxStream while parsing a new 'trak'
if QtDemuxStream is reused, then we need to reset it. https://bugzilla.gnome.org/show_bug.cgi?id=788759
This commit is contained in:
parent
8aa5c59b5f
commit
7c8aeff262
1 changed files with 13 additions and 7 deletions
|
@ -2531,7 +2531,7 @@ gst_qtdemux_stream_clear (GstQTDemux * qtdemux, QtDemuxStream * stream)
|
|||
}
|
||||
|
||||
static void
|
||||
gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
|
||||
gst_qtdemux_stream_reset (GstQTDemux * qtdemux, QtDemuxStream * stream)
|
||||
{
|
||||
gint i;
|
||||
gst_qtdemux_stream_clear (qtdemux, stream);
|
||||
|
@ -2542,12 +2542,21 @@ gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
|
|||
entry->caps = NULL;
|
||||
}
|
||||
}
|
||||
g_free (stream->stsd_entries);
|
||||
stream->stsd_entries = NULL;
|
||||
stream->stsd_entries_length = 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gst_qtdemux_stream_free (GstQTDemux * qtdemux, QtDemuxStream * stream)
|
||||
{
|
||||
gst_qtdemux_stream_reset(qtdemux, stream);
|
||||
gst_tag_list_unref (stream->stream_tags);
|
||||
if (stream->pad) {
|
||||
gst_element_remove_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
|
||||
gst_flow_combiner_remove_pad (qtdemux->flowcombiner, stream->pad);
|
||||
}
|
||||
g_free (stream->stsd_entries);
|
||||
g_free (stream);
|
||||
}
|
||||
|
||||
|
@ -9638,11 +9647,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
|||
goto skip_track;
|
||||
}
|
||||
|
||||
stream->stream_tags = gst_tag_list_make_writable (stream->stream_tags);
|
||||
|
||||
/* flush samples data from this track from previous moov */
|
||||
gst_qtdemux_stream_flush_segments_data (qtdemux, stream);
|
||||
gst_qtdemux_stream_flush_samples_data (qtdemux, stream);
|
||||
/* reset reused stream */
|
||||
gst_qtdemux_stream_reset(qtdemux, stream);
|
||||
}
|
||||
/* need defaults for fragments */
|
||||
qtdemux_parse_trex (qtdemux, stream, &dummy, &dummy, &dummy);
|
||||
|
|
Loading…
Reference in a new issue