[Bug 706076] New: qtdemux: failed assertion for fragmented mp4 (DASH) streams
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Aug 15 07:24:16 PDT 2013
https://bugzilla.gnome.org/show_bug.cgi?id=706076
GStreamer | gst-plugins-good | git
Summary: qtdemux: failed assertion for fragmented mp4 (DASH)
streams
Classification: Platform
Product: GStreamer
Version: git
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: ---
Created an attachment (id=251744)
View: https://bugzilla.gnome.org/attachment.cgi?id=251744
Review: https://bugzilla.gnome.org/review?bug=706076&attachment=251744
Patch to avoid failed assertion
When using qtdemux to play a DASH stream in which the moov boxes in the
initialisation segments contain an mehd box (which contains the overall stream
duration), the following assertion is thrown on representation switches:
gst-launch-1.0:6203): GStreamer-CRITICAL **: _gst_util_uint64_scale_int:
assertion `denom > 0' failed
The reason this happens is that stream->n_samples is used in
gst_qtdemux_configure_stream as the denominator argument to
gst_util_uint64_scale_int_round (when calculating stream->fps_d, line 5602);
but for fragmented mp4 streams n_samples can be zero at that point.
In a fragmented mp4 stream, the number of samples in each track isn't recorded
in any of the boxes contained within the moov box (the moov box is in the
initialisation segment, which contains no samples, so sampleCount in the stsz
box is 0); therefore, the value of n_samples for a stream may be zero when
gst_qtdemux_configure_stream tries to set fps_d.
I've attached a patch that will check that n_samples is non-zero before using
it as a denominator, thus avoiding the failed assertion.
--
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