[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