Pipeline Says it's Playing, but It's Not

Wes Miller wmiller at sdr.com
Tue Mar 5 10:53:55 PST 2013


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.


More information about the gstreamer-devel mailing list