With a little bit of work I managed to get it to work...<br /><br />Carlos Castro<br /><br />Em 6 de Jan de 2010 15:21, Carlos Castro &lt;carloscastro7@gmail.com&gt; escreveu:<br />&gt; Hi everyone,<br />&gt; <br />&gt; <br />&gt; <br />&gt; I&#39;m trying to build a simple GTK app using GST as a backend to see and<br />&gt; <br />&gt; record a webcam stream.<br />&gt; <br />&gt; <br />&gt; <br />&gt; I can do both but separately... My problem is doing both at the same time.<br />&gt; <br />&gt; What I&#39;m trying to accomplish is this:<br />&gt; <br />&gt; <br />&gt; <br />&gt; gst-launch-0.10 v4l2src \<br />&gt; <br />&gt; ! videorate \<br />&gt; <br />&gt; ! video/x-raw-yuv,framerate=25/2 \<br />&gt; <br />&gt; ! ffmpegcolorspace \<br />&gt; <br />&gt; ! tee name=t1 \<br />&gt; <br />&gt; ! queue \<br />&gt; <br />&gt; ! xvimagesink sync=false t1. \<br />&gt; <br />&gt; ! queue \<br />&gt; <br />&gt; ! theoraenc quality=16 \<br />&gt; <br />&gt; ! oggmux name=mux osssrc \<br />&gt; <br />&gt; ! audio/x-raw-int,rate=22050,channels=1 \<br />&gt; <br />&gt; ! queue \<br />&gt; <br />&gt; ! audioconvert \<br />&gt; <br />&gt; ! vorbisenc quality=0.2 \<br />&gt; <br />&gt; ! mux. mux. \<br />&gt; <br />&gt; ! queue \<br />&gt; <br />&gt; ! filesink location=test.ogg<br />&gt; <br />&gt; <br />&gt; <br />&gt; My code is this:<br />&gt; <br />&gt; <br />&gt; <br />&gt; ...<br />&gt; <br />&gt;         m_pipeline = gst_pipeline_new (&quot;pipeline&quot;);<br />&gt; <br />&gt;         m_bin = gst_bin_new (&quot;bin&quot;);<br />&gt; <br />&gt;         m_source = gst_element_factory_make (&quot;v4l2src&quot;, &quot;video_src&quot;);<br />&gt; <br />&gt;         m_videorate = gst_element_factory_make (&quot;videorate&quot;, &quot;videorate&quot;);<br />&gt; <br />&gt;         m_framerate = gst_element_factory_make<br />&gt; <br />&gt; (&quot;video/x-raw-yuv,framerate=25/2&quot;, &quot;framerate&quot;);<br />&gt; <br />&gt;         m_colorspace = gst_element_factory_make (&quot;ffmpegcolorspace&quot;, &quot;colorspace&quot;);<br />&gt; <br />&gt;         m_tee = gst_element_factory_make (&quot;tee name=t1&quot;, &quot;t1&quot;);<br />&gt; <br />&gt;         m_queue = gst_element_factory_make (&quot;queue&quot;, &quot;queue&quot;);<br />&gt; <br />&gt;         m_imagesink = gst_element_factory_make (&quot;xvimagesink sync=false t1.&quot;,<br />&gt; <br />&gt; &quot;imagesink&quot;);<br />&gt; <br />&gt;         m_queue2 = gst_element_factory_make (&quot;queue&quot;, &quot;queue2&quot;);<br />&gt; <br />&gt;         m_videoenc = gst_element_factory_make (&quot;theoraenc quality=16&quot;, &quot;video_enc&quot;);<br />&gt; <br />&gt;         m_mux = gst_element_factory_make (&quot;oggmux name=mux osssrc&quot;, &quot;mux&quot;);<br />&gt; <br />&gt;         m_audio = gst_element_factory_make<br />&gt; <br />&gt; (&quot;audio/x-raw-int,rate=22050,channels=1&quot;, &quot;audio&quot;);<br />&gt; <br />&gt;         m_queue3 = gst_element_factory_make (&quot;queue&quot;, &quot;queue3&quot;);<br />&gt; <br />&gt;         m_audiocon = gst_element_factory_make (&quot;audioconvert&quot;, &quot;audio_con&quot;);<br />&gt; <br />&gt;         m_audioenc = gst_element_factory_make (&quot;vorbisenc quality=0.2&quot;, &quot;audio_enc&quot;);<br />&gt; <br />&gt;         m_mux2 = gst_element_factory_make (&quot;mux. mux.&quot;, &quot;mux2&quot;);<br />&gt; <br />&gt;         m_queue4 = gst_element_factory_make (&quot;queue&quot;, &quot;queue4&quot;);<br />&gt; <br />&gt;         m_file = gst_element_factory_make (&quot;filesink location=test.ogg&quot;, &quot;filesink&quot;);<br />&gt; <br />&gt; <br />&gt; <br />&gt; gst_bin_add_many (GST_BIN (m_bin), m_source, m_videorate, m_framerate,<br />&gt; <br />&gt; m_colorspace, m_tee, m_queue, m_imagesink, m_queue2, m_videoenc,<br />&gt; <br />&gt; m_mux, m_audio, m_queue3, m_audiocon, m_audioenc, m_mux2, m_queue4,<br />&gt; <br />&gt; m_file , NULL);<br />&gt; <br />&gt;         gst_bin_add (GST_BIN (m_pipeline), m_bin);<br />&gt; <br />&gt;         gst_element_link_many (m_source, m_videorate, m_framerate,<br />&gt; <br />&gt; m_colorspace, m_tee, m_queue,<br />&gt; <br />&gt;                         m_imagesink, m_queue2, m_videoenc, m_mux, m_audio, m_queue3,<br />&gt; <br />&gt; m_audiocon, m_audioenc, m_mux2, m_queue4, m_file , NULL);<br />&gt; <br />&gt; <br />&gt; <br />&gt;     if (GST_IS_X_OVERLAY (m_imagesink))<br />&gt; <br />&gt;         gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (m_imagesink),<br />&gt; <br />&gt; GPOINTER_TO_INT (window));<br />&gt; <br />&gt; <br />&gt; <br />&gt;     gst_element_set_state (m_pipeline, GST_STATE_PLAYING);<br />&gt; <br />&gt; ...<br />&gt; <br />&gt; <br />&gt; <br />&gt; Can anyone help me on what I&#39;m doing wrong?<br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; <br />&gt; Thanks,<br />&gt; <br />&gt; Carlos Castro<br />&gt; <br />&gt; <br />&gt; <br />&gt; --<br />&gt; <br />&gt; Cumprimentos,<br />&gt; <br />&gt; Carlos Castro<br />&gt;