GNOME Bugzilla – Bug 592657
[appsink] Blocks after entering on pause state
Last modified: 2009-09-10 14:35:50 UTC
Created attachment 141383 [details] source code to reproduce the problem If i use appsink with block behaviour, setting a max number of buffers and using another thread to pull these buffers, the stream thread blocks when reaches the limit of buffers and the other thread pull the buffers just fine unblocking the pipe. When i set the pipeline to PAUSE state, it goes to pause ok, but when i try to set it back to playing, the pipe seens to go to play state but the stream thread seens to be blocked. I tried to change the sync and async properties, but the problem persists. It is interesting that i can pull out the remaining buffers from appsink even before setting the pipeline back to playing, but after the remaining buffers end i got blocked on the pull_buffer function, thats why i think the streaming thread got blocked. Here is the source code that can reproduce the problem: https://svn.inf.ufsc.br/katcipis/c/gstreamer/bug_appsink_block/ Or see the attachment.
Sorry "It is interesting that i can pull out the remaining buffers from appsink AFTER setting the pipeline back to playing" sorry for my lousy english, hope i was clear enough now.
Since it is my first bug report i would like to congratulate everyone involved on gstreamer support and development, you are doing a great job, the framework has a great design and is very well documented, using the framework and even writing new plugins is easy thanks to all the documentation and tools provided. Hope i can help with this bug report, and more in the future. best regards
commit 2c08c76383ffa2baae5c8f7edf2c5af446390f28 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Mon Aug 24 13:15:06 2009 +0200 appsink: don't block in paused When we are asked to unlock we should either leave the render function or call the wait_preroll method to release the stream lock. Fixes #592657
(In reply to comment #2) > Since it is my first bug report i would like to congratulate everyone involved > on gstreamer support and development, you are doing a great job, the framework > has a great design and is very well documented, using the framework and even > writing new plugins is easy thanks to all the documentation and tools provided. > > Hope i can help with this bug report, and more in the future. > > best regards join the irc channel. if you wrote useful plugins open a bug report and put them there as a patch against gst-plugin-bad. Study existing plugins and improve them :) There are many good things to do.
I have made just simple plugins that where too specific to a project on my work (one where a modification of wavparse that ignores the duration on the wav header, so i could open and play files where they where still being created, the other removes silence from the stream and plays only voice, its very simple and uses a VAD to do the job, since gstreamer has cutter i imagine that it is not too usefull). Im thinking on making a AEC (using speex), or helping on one that is already being made. And if i find anything that can be improved on a plugin i will improve and patch, im very new at gstreamer but im really looking forward to help :-), i dont like the idea of only using something and not helping at all. best regards Katcipis