[Bug 647756] New: [bin] Posting EOS message although not reached PLAYING yet
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Apr 14 03:18:49 PDT 2011
https://bugzilla.gnome.org/show_bug.cgi?id=647756
GStreamer | gstreamer (core) | git
Summary: [bin] Posting EOS message although not reached PLAYING
yet
Classification: Platform
Product: GStreamer
Version: git
OS/Version: Linux
Status: UNCONFIRMED
Severity: blocker
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: slomo at circular-chaos.org
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
With the encodebin unit test in -base an interesting race condition is exposed.
The unit test sets the pipeline to PLAYING, waits for the EOS message, then
releases the request pads and then sets the pipeline to NULL. The EOS message
arrives before the complete pipeline has finished the state change to PLAYING
(the sinks are PLAYING already) and then the pad releasing will set internal
elements of encodebin to NULL and remove them from encodebin. Because an async
state change is still happening these elements are set to PLAYING again
afterwards (although they're not a child element of encodebin anymore) and
during disposal GstElement complains that the state is not NULL.
The assertion can be fixed by releasing the encodebin pads after setting the
pipeline to NULL. It can also be fixed by checking in GstBin if an element is
still the child of the bin before changing the state and by setting the state
of the elements to NULL *after* removing them from the bin. I'll file a
separate bug for the GstBin child element problem.
--
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