Pipeline paused, inside elements don't?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Pipeline paused, inside elements don't?

José Luis Segura Lucas
Good afternoon!

Some time ago I wrote a source and a sink elements using the Python
bindings of Gstreamer.

A few days ago, I come back to this code and, after a few tests, I see
something estrange: when I set the pipeline state to "paused", my sink
element continue on "playing" state.

I wrote the sink element as a subclass of the "gst.BaseSink" Python
class. The only thing that is supposed to do using that class is
overwrite the "do_render" method.

Do I need to do something more to set the element state to paused?

Thanks in advance and best regards


------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Pipeline paused, inside elements don't?

José Luis Segura Lucas
I have discover the mistake:

I was changing the state using gobject functions (as gobject.idle_add).
Changing the state with "set_state" pased to gobject.idle_add, the
set_state is called again and again because it alwys return something
different to "False".

I wrote a little wrapper that, in the case that the state change is
succesful, it returns True and gobject.idle_add stops to call the
set_state func.




El Wed, 5 Jan 2011 20:58:30 +0100
José Luis Segura Lucas <[hidden email]> escribió:

> Good afternoon!
>
> Some time ago I wrote a source and a sink elements using the Python
> bindings of Gstreamer.
>
> A few days ago, I come back to this code and, after a few tests, I see
> something estrange: when I set the pipeline state to "paused", my sink
> element continue on "playing" state.
>
> I wrote the sink element as a subclass of the "gst.BaseSink" Python
> class. The only thing that is supposed to do using that class is
> overwrite the "do_render" method.
>
> Do I need to do something more to set the element state to paused?
>
> Thanks in advance and best regards

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to
best implement a security strategy that keeps consumers' information secure
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel