[Bug 781121] New: qtmux "seek" error when in streaming mode

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Apr 10 09:51:08 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=781121

            Bug ID: 781121
           Summary: qtmux "seek" error when in streaming mode
    Classification: Platform
           Product: GStreamer
           Version: 1.8.3
                OS: Linux
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: yisong at tycoint.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 349593
  --> https://bugzilla.gnome.org/attachment.cgi?id=349593&action=edit
attachment showing a potential fix (in function gst_qt_mux_start_file(...)
under .../gst/isomp4/gstqtmux.c

There should be no seek in the mux when we set property of "fragment-duration"
to non-zero and "streamable" to TRUE. However I found the qtmux still did
"seek" under the function gst_qt_mux_stop_file(...) for updating the
qtmux->moov->mvex.mehd.fragment_duration in our case.

Basically the "streamable" config got ignored because the qtmux_klass->format
!= GST_QT_MUX_FORMAT_ISML in our case. The streamable was set in a later stage 
by the following piece of code under function gst_qt_mux_start_file (GstQTMux *
qtmux) when the code found that the downstream is not seekable:
======
    case GST_QT_MUX_MODE_FRAGMENTED:
      if (!gst_qt_mux_downstream_is_seekable (qtmux)) {
        GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
            "streamable=false. Will ignore that and create streamable output "
            "instead");
        qtmux->streamable = TRUE;
        g_object_notify (G_OBJECT (qtmux), "streamable");
======

However it missed to update the qtmux->mux_mode to
GST_QT_MUX_MODE_FRAGMENTED_STREAMABLE from GST_QT_MUX_MODE_FRAGMENTED after
setting qtmux->streamable = TRUE

As we are not in GST_QT_MUX_MODE_FRAGMENTED_STREAMABLE which is needed to
prevent the "seek" described above, we hit the issue.

A potential fix tested in our case is attached (screenshot of the change).

Please let us know if you need any more information regarding this bug.

Thanks,

Song

-- 
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