[gstreamer-bugs] [Bug 392189] [esdsink] pipeline hung in state change from PAUSED to PLAYING

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Thu Jan 4 20:05:36 PST 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=392189

  GStreamer | gst-plugins-good | Ver: 0.10.2


Jay.Tan changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |UNCONFIRMED




------- Comment #3 from Jay.Tan  2007-01-05 04:04 UTC -------
I'am sorry that this commit can not fix this bug.
The esd-server handle a requirement from the esd-client by several loop
operations. When the esd-client want to play a sound stream, it will send a
requirment to the esd-server. If this channel was authenticated by the
esd-server, the esd-client began to send sound stream by writting it to a
buffer and the esd-server read the stream from the buffer.
  When the state of esdsink was set from GST_STATE_PLAYING to GST_STATE_PAUSED,
the esd-client will stop to write sound stream into the buffer. But the
esd-server still want to get data from the buffer and if can't, it will be
blocked here. When you set the state of esdsink from GST_STATE_PAUSED back to
GST_STATE_PLAYING, the esdsink must get the latency from the server and then
start to write the buffer. But, unfortunately, the esd-client can't get the
latency because the esd-server was blocked. So the esd-client didn't write
stream into the buffer. The esd-server  was also blocked because it can't read
data from the buffer. This situation is similar to Dead-Lock.
  I modified esdsink to bypass this bug. But it was not so good:)



-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list