[Bug 743407] New: qtdemux: doesn't ignore data after last sample in mdat.
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Fri Jan 23 07:54:47 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=743407
GStreamer | gst-plugins-good | git master
Summary: qtdemux: doesn't ignore data after last sample in
mdat.
Classification: Platform
Product: GStreamer
Version: git master
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-good
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: floobleflam at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
If qtdemux is demuxing a fragmented stream (e.g., a DASH stream), and it
receives a fragment that contains data in its mdat after the end of the last
sample, playback fails.
The reason is that qtdemux will start trying to parse the next fragment
starting from the byte following the end of the last sample (i.e., while still
inside the current fragment's mdat) rather than discarding the remaining bytes
in the mdat and starting parsing from the beginning of the next fragment. At
that point playback fails, since the bytes after the last sample won't be valid
ISOBMFF boxes.
This can be demonstrated by playing this DASH stream:
gst-launch-1.0 playbin
uri=http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-nosurround-ctv.mpd
Some of the audio fragments in this stream have "watermarks" in them; the
watermark consists of some data inserted in their mdat after the end of the
last sample. When the client reaches one of these segments (which on my system
happens when playback reaches roughly 1m 29s), it throws an error and exits:
ERROR: from element
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux1:
This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(5045): gst_qtdemux_process_adapter ():
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux1:
atom RD
Execution ended after 0:01:29.561894521
The ISOBMFF spec allows data other than sample data to be carried in an mdat;
the demuxer should extract only the sample data that is referenced by metadata
in the fragment's moof box.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list