[Bug 659242] New: Unexpected EOS when seeking on paused matroska file

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Sep 16 06:11:19 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=659242
  GStreamer | gst-plugins-good | git

           Summary: Unexpected EOS when seeking on paused matroska file
    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: branko.subasic at axis.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=196718)
 View: https://bugzilla.gnome.org/attachment.cgi?id=196718
 Review: https://bugzilla.gnome.org/review?bug=659242&attachment=196718

Prevent the demuxer from sending EOS when doing a flushing seek while in paused
state

Create a pipeline similar to the following

filesrc ! matroskademux ! queue ! ...

Pause the pipeline and wait for it to preroll. Then do a flushing seek.
Sometimes this will result in the demuxer sending an EOS.

This is done from gst_matroska_demux_loop() because it gets a  
GST_FLOW_UNEXPECTED return value from the EBML-reader, from
gst_ebml_peek_id_length(). This function will always return GST_FLOW_UNEXPECTED
if the peek fails. No matter what the reason for the fail is.

For example, in the situation above (when the EOS is sent) the reason for the
peek failure is that the filesrc is flushing, and returns GST_FLOW_WRONG_STATE
when the get_range function is called. But this never reaches the ebml reader,
which instead returns a GST_FLOW_UNEXPECTED.

I have attached a patch where I have changed the reader to return the correct 
value, i.e. the value that the peek function returns.

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