mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
qtdemux: fix subsequent moof parsing after moov with valid samples
reset the moof_offset back to its original value like is done in the error case just before. Fixes subsequent parsing of a moof following a moov that contains valid samples in a non-streaming fragmented mp4. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
This commit is contained in:
parent
2b9c465643
commit
868149ca5a
1 changed files with 2 additions and 2 deletions
|
@ -12774,7 +12774,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
|
||||||
qtdemux->moof_offset = offset;
|
qtdemux->moof_offset = offset;
|
||||||
goto samples_failed;
|
goto samples_failed;
|
||||||
}
|
}
|
||||||
qtdemux->moof_offset = 0;
|
qtdemux->moof_offset = offset;
|
||||||
/* movie duration more reliable in this case (e.g. mehd) */
|
/* movie duration more reliable in this case (e.g. mehd) */
|
||||||
if (qtdemux->segment.duration &&
|
if (qtdemux->segment.duration &&
|
||||||
GST_CLOCK_TIME_IS_VALID (qtdemux->segment.duration))
|
GST_CLOCK_TIME_IS_VALID (qtdemux->segment.duration))
|
||||||
|
@ -12971,7 +12971,7 @@ qtdemux_prepare_streams (GstQTDemux * qtdemux)
|
||||||
GST_DEBUG_OBJECT (qtdemux, "track-id %u, fourcc %" GST_FOURCC_FORMAT,
|
GST_DEBUG_OBJECT (qtdemux, "track-id %u, fourcc %" GST_FOURCC_FORMAT,
|
||||||
stream->track_id, GST_FOURCC_ARGS (CUR_STREAM (stream)->fourcc));
|
stream->track_id, GST_FOURCC_ARGS (CUR_STREAM (stream)->fourcc));
|
||||||
|
|
||||||
if (qtdemux->fragmented) {
|
if (qtdemux->fragmented && qtdemux->pullbased) {
|
||||||
/* need all moov samples first */
|
/* need all moov samples first */
|
||||||
GST_OBJECT_LOCK (qtdemux);
|
GST_OBJECT_LOCK (qtdemux);
|
||||||
while (stream->n_samples == 0)
|
while (stream->n_samples == 0)
|
||||||
|
|
Loading…
Reference in a new issue