[gst-devel] gstbasesink causing long pause delay.

Tyler Nielsen tyler.nielsen at gmail.com
Tue Nov 27 22:15:58 CET 2007


Hello,

I have a video plugin that inherits from GstVideoSink.  Using the latest
gstreamer, I found that on some videos, when I try to pause there is a long
(1-5 second) delay before the video stops.  I was able to track down the
delay, and it occurs because acquiring the lock on line 3337 in
gstbasesink.c takes a long time.

After adding some debug, I saw that gst_base_sink_chain was called many
(10-120) times while the lock was being waited for in
gst_base_sink_change_state on line 3337.  It seems like one g_mutex_lock
call is succeeding many times while another one hangs.  I added a hack to
gstbasesink.c that added another lock, and prevented gst_base_sink_chain
from looping once gst_base_sink_chage_state was called, and this fixed my
issue.

What I'm trying to find is the right way to get this fixed.  Is this a bug
in my plugin, in gstreamer, or even in glib?

Thanks,
Tyler Nielsen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20071127/5392138d/attachment.htm>


More information about the gstreamer-devel mailing list