[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