[gst-devel] Going to PAUSE for a task-based source element: dead lock

Fabrice Triboix gstdbg at yahoo.com
Mon Feb 5 17:55:09 CET 2007


Hello,

I am writing a source element reading network
packets. It spawns a GstTask to create
buffers and push them to source pads.

A problem arise when I try to go to the PAUSE
state. In the change_state() function, I ask
the task to stop processing packets, and then
wait for its acknowledgement. The task
continues its work but is blocked when
calling gst_pad_push().

I guess that gst_pad_push() blocks as soon as
the parent element goes to PAUSE state... But
this does not work for me as I have to handle
an asynchronous control stream to request to
actual network source to stop sending
packets. Even then, there may be a few
pending packets that I need to process before
actually going to PAUSE.

I would like to know if gstreamer is able to
handle such a situation, or if I am just try
to do something that is not allowed by
gstreamer.

Thank very much you for your help!

  Fabrice



 
____________________________________________________________________________________
The fish are biting. 
Get more visitors on your site using Yahoo! Search Marketing.
http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php




More information about the gstreamer-devel mailing list