[gst-devel] Problem with pad blocking

Arnout Vandecappelle arnout at mind.be
Mon Mar 2 12:41:34 CET 2009


 I don't know if it's the right thing to do, but I do the actual replacement, 
including the unblocking, from the main thread.  In the block callback I just 
add an idle source to the main thread.

 Regards,
 Arnout

On Friday 27 February 2009 05:38:14 Olivier Crête wrote:
> Hello,
>
> I have a case with pad blocking that I can't seem to be able to get out
> of.
>
> I have a pipeline like A->B->C where I want to change B. So I block A's
> sink pad  with gst_pad_set_blocked_async(pad, TRUE, callback) and in the
> callback I do {stuff(); pad_set_blocked_async(pad, FALSE,
> do_nothing_callback);}..
>
> The race I see is that another thread manages to do
> gst_pad_set_blocked_async(pad, TRUE, callback) after I unblocked it
> inside the callback, but before the function returns (or generally
> before the PAD lock has been re-taken). So it gets in a situation where
> the callback has been called, but the pad a been re-locked.. So nothing
> will ever happen..
>
> Am I missing something ?



-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  D206 D44B 5155 DF98 550D  3F2A 2213 88AA A1C7 C933




More information about the gstreamer-devel mailing list