[Bug 796620] New: playbin2 flush doesn't travel upstream

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Jun 18 13:26:10 UTC 2018


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

            Bug ID: 796620
           Summary: playbin2 flush doesn't travel upstream
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: jawilso3 at cisco.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 372712
  --> https://bugzilla.gnome.org/attachment.cgi?id=372712&action=edit
test app to show problem. Can be built to send flush to appsrc or playbin.

I have an application that constructs a playbin2 based pipeline. It uses an
appsrc element to write TS muxed data in push mode. The application has a need
to flush the pipeline when starting playback of a new stream and it does this
by sending a flush-start, flush-stop pair of events to the playbin.

We've recently updated from GStreamer 1.4.x to 1.8.3 and found that the appsrc
elements aren't receiving the flush events when the playbin is flushed (they
did when using 1.4). The particular change that caused this behaviour was
introduced in 1.6.1 by
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/gst/playback/gstplaybin2.c?h=1.6&id=cfb6d6e7b44fedddeb6aa6f0fdb1189541d3d035.

The GStreamer examples and documentation that I've seen state that flush events
should be sent to the pipeline and my application has followed this advice.
Since this change has been in place for so long I find it hard to believe that
this is a bug so I'm looking for advice on whether the application behaviour is
correct. I've attempted to reproduce the logic in a test application (see
attached) and can confirm it's broken on 1.8.3 and git master. The test app
builds a pipeline, pushes a large amount of data, then after 1 second issues a
flush. If the flush is sent to the appsrc then all is well, however if it's
sent to the playbin then it doesn't travel to the appsrc. 

Should playbin/pipeline send the events upstream to the appsrc in push-mode? or
should my app always have been sending the flush events to the appsrc?

Thanks

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