[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