mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
qtdemux: bail out when encountering an atom with a size of 0
A size 0 atom means the atom extends to the end of the file. No further valid atoms will ever follow. Avoids a subsequent scan for an atom from one byte earlier after encountering a size 0 atom. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/643>
This commit is contained in:
parent
868149ca5a
commit
37f0119f49
1 changed files with 5 additions and 3 deletions
|
@ -8833,13 +8833,15 @@ qtdemux_find_atom (GstQTDemux * qtdemux, guint64 * offset,
|
|||
}
|
||||
|
||||
if (lfourcc == fourcc) {
|
||||
GST_DEBUG_OBJECT (qtdemux, "found fourcc at offset %" G_GUINT64_FORMAT,
|
||||
*offset);
|
||||
GST_DEBUG_OBJECT (qtdemux, "found '%" GST_FOURCC_FORMAT " at offset %"
|
||||
G_GUINT64_FORMAT, GST_FOURCC_ARGS (fourcc), *offset);
|
||||
break;
|
||||
} else {
|
||||
GST_LOG_OBJECT (qtdemux,
|
||||
"skipping atom '%" GST_FOURCC_FORMAT "' at %" G_GUINT64_FORMAT,
|
||||
GST_FOURCC_ARGS (fourcc), *offset);
|
||||
GST_FOURCC_ARGS (lfourcc), *offset);
|
||||
if (*offset == G_MAXUINT64)
|
||||
goto locate_failed;
|
||||
*offset += *length;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue