[Bug 668097] New: [subtitleoverlay] fix state change stall on PAUSED->READY->PAUSED (patch)

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jan 17 06:42:47 PST 2012


https://bugzilla.gnome.org/show_bug.cgi?id=668097
  GStreamer | gst-plugins-base | 0.10.x

           Summary: [subtitleoverlay] fix state change stall on
                    PAUSED->READY->PAUSED (patch)
    Classification: Platform
           Product: GStreamer
           Version: 0.10.x
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: anssi at mageia.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=205448)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=205448)
Test program for subtitleoverlay state change stall

After a PAUSED->READY change the sink pads are currently not set to
blocking state. When the element is set back to PAUSED, the change will
be done asynchronously, but as the _pad_blocked_cb() callback is now not
called, the state change never completes.

Fix that by setting the sink pads to blocking state on a PAUSED->READY
change, which ensures that the _pad_blocked_cb() is called when needed
on any future READY->PAUSED change. The sink pads are already put to
blocking state on NULL->READY change, so this behavior is consistent.


Git-formatted patch attached, and a simple quickly-hacked-up test program I
used which does NULL->READY->PAUSED->READY->PAUSED, useful with
GST_DEBUG="*:2,GST_STATES:4,subtitleoverlay:5".

I tested the patch with 0.10.32 gst+plugins-base, and it seems to fix the
issue.

This is the first time I've looked at GST, so be sure to double-check I
understood everything correctly :)

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