Hello,
When I receive a buffering message, I call gst_element_set_state(PAUSED) from my synchronous message callback. If just before the event is received, the gst_element_set_state(NULL) is invoked (because the user wants to quit the player), I then seem to get locked on a GST_STATE_LOCK(element). The application appears to be blocked forever. Am I doing this the wrong way? Thanks for you advice, francis ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
On Tue, 2010-01-05 at 13:42 +0100, franchan wrote:
Hi, > When I receive a buffering message, > I call gst_element_set_state(PAUSED) > from my synchronous message callback. > If just before the event is received, > the gst_element_set_state(NULL) is invoked > (because the user wants to quit the player), > I then seem to get locked on a GST_STATE_LOCK(element). > The application appears to be blocked forever. > Am I doing this the wrong way? You are not allowed to call _set_state() from a streaming thread, so you can't use it in a synchronous message callback. Cheers -Tim ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
On Tue, 2010-01-05 at 13:27 +0000, Tim-Philipp Müller wrote:
> You are not allowed to call _set_state() from a streaming thread, so > you can't use it in a synchronous message callback. Just to correct myself: this isn't entirely true, it's fine to call _set_state() on a newly-added element in a pad-added callback for example, but you shouldn't change pipeline state from a streaming thread. Without more information it's hard to guess what exactly you're doing and what's going on. Do you have a short piece of code that reproduces the problem? Cheers -Tim ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |