[Bug 708636] New: Collectpads should set *all* its pads to flushing when set_flushing is called, not only the ones in the public list.

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Sep 23 08:59:17 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=708636
  GStreamer | gstreamer (core) | git

           Summary: Collectpads should set *all* its pads to flushing when
                    set_flushing is called, not only the ones in the
                    public list.
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: mathieu.duponchelle at epitech.eu
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


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

fixes the reported issue

pads->data is the public list. It is dynamically rebuilt at each call to
check_collected, in check_pads to be specific. When you add a pad and
collectpads have been started, it is not added to the public list.

Thus there exists a possible race where :

1) You would add a pad to collectpads while running.
2) You set collectpads to flushing before check_collected has been called again
-> the pad is not set to flushing
3) the pad starts pushing data as downstream might not be prepared, in the case
of adder it then returns FLOW_FLUSHING.
4) elements like demuxers, when they get a FLOW_FLUSHING, stop their tasks,
never to be seen again.
5) I wonder what the hell is happening and spend two days writing a one-liner.

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