There is two way :<br>1. you can delete old pipeline ,delete the pipeline object and set new video path and with creating new pipeline after getting EOS.<br>2. you can do like this after getting EOS:<br> gst_element_set_state( pipeline, GST_STATE_NULL );<br>
 gst_element_set_state( pipeline, GST_STATE_READY);<br>then set new video path <br> gst_element_set_state( pipeline, GST_STATE_PLAY);<br><br>Definitly it will work.<br><br><br><br><div class="gmail_quote">On Wed, Jul 15, 2009 at 5:13 PM, ldac <span dir="ltr">&lt;<a href="mailto:ldacvs@gmail.com">ldacvs@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
    Hi all,<br>
<br>
I have programmed a C application where I capture video, then I encode<br>
it, and finally I stream it using an udpsink element. It works, but if I<br>
stop the pipeline (sending it EOS) and then start it again, I get old<br>
video, when it should be alive. How can I clean absolutely the pipeline<br>
to avoid this?<br>
<br>
    My code is something like this:<br>
<br>
        ...<br>
        // Create the elements<br>
        pipeline = gst_pipeline_new( &quot;pipe&quot; );<br>
        video_src = gst_element_factory_make( &quot;mfw_v4lsrc&quot;,<br>
&quot;video-source&quot; );<br>
        video_enc = gst_element_factory_make( &quot;mfw_vpuencoder&quot;,<br>
&quot;video-encoder&quot; );<br>
        sink = gst_element_factory_make( &quot;udpsink&quot;, &quot;sink&quot; );<br>
        // Add the elements to the pipeline<br>
        gst_bin_add_many( GST_BIN( pipeline ), video_src, video_enc,<br>
sink, NULL );<br>
        gst_element_link_with_filter( video_src, video_enc, &amp;settings );<br>
        gst_element_link( video_enc, sink );<br>
        ...<br>
        // Start/Stop the video stream<br>
        while ( 1 )<br>
        {<br>
             if ( do_stream )<br>
             {<br>
                 gst_element_set_state( pipeline, GST_STATE_PLAYING );<br>
                 g_main_loop_run( loop );<br>
                 gst_element_set_state( pipeline, GST_STATE_NULL );<br>
             }<br>
             else<br>
                sleep( 1 );<br>
        }<br>
        ...<br>
<br>
    Another function changes the variable &#39;do_stream&#39; to true/false, and<br>
send also the EOS signal to the pipeline when required.<br>
<br>
    So, specifically, my question is: What do I clean my pipeline when<br>
stopped to start again with the buffers and everything clean? Do I have<br>
to delete the pipeline object and do I have to create and link all the<br>
pipeline again?<br>
<br>
    Thank you very much.<br>
    All the best.<br>
    LD.<br>
<br>
<br>
<br>
------------------------------------------------------------------------------<br>
Enter the BlackBerry Developer Challenge<br>
This is your chance to win up to $100,000 in prizes! For a limited time,<br>
vendors submitting new applications to BlackBerry App World(TM) will have<br>
the opportunity to enter the BlackBerry Developer Challenge. See full prize<br>
details at: <a href="http://p.sf.net/sfu/Challenge" target="_blank">http://p.sf.net/sfu/Challenge</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Thanx &amp; Regards<br>Ajay Gautam<br>+91-9717785580<br>