Pipeline Says it's Playing, but It's Not
Nathanael D. Noblet
nathanael at gnat.ca
Tue Mar 5 11:35:19 PST 2013
One thing I learned about EOS's is that they aren't propagated until all
elements in the pipline process them. Which if encoding/muxers or the
like are involved can take time to work through all the buffered data...
On 03/05/2013 11:53 AM, Wes Miller wrote:
> Tim,
>
> Thank you!
>
>> you stop a pipeline by setting its state to GST_STATE_NULL.
>
> Ahh, yes, tried that too. Right after sending the EOS.
>
> I went back and added a *gst_element_get_state()* after the
> *gst_element_set_state()* and it indeed changes the pipe state. Thank
> goodness. I still never see the EOS propagate, though. I say this because
> in my bus_message_handler() I have a case for EOS and it should, but does
> not, print a bunch of "EOS"'s.
>
> switch (GST_MESSAGE_TYPE( msg ))
> {
> case GST_MESSAGE_EOS:
> {
> g_main_loop_quit( that->GetLoop() );
> std::cout << "EOS EOS EOS EOS EOS EOS" << std::endl; // excessive
> prints so they can't
> std::cout << "EOS EOS EOS EOS EOS EOS" << std::endl; // get lost in
> other output.
> std::cout << "EOS EOS EOS EOS EOS EOS" << std::endl;
> std::cout << "EOS EOS EOS EOS EOS EOS" << std::endl;
> break;
> }
>
> No matter, you solved the problem with the GST_STATE_NULL.
>
>> That sounds like you're feeding an invalid pointer or an already-free
>> object to the macro.
>
> I tried to deref the pipeline element after stopping the loop.
>
>
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Pipeline-Says-it-s-Playing-but-It-s-Not-tp4658881p4658899.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
--
Nathanael d. Noblet
t 403.875.4613
More information about the gstreamer-devel
mailing list