Hi,<br>I&#39;m developing a gst-app with MFC: I&#39;m currently trying to show an mpeg4 stream with gst.<br>I&#39;m using the windows gst one from <a href="http://perso.orange.es/moutte983/gstreamer/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://perso.orange.es/moutte983/gstreamer/
</a>.<br>My goal is to use a fakesrc in which getting mpeg4 packet (done) and show with gst the video but I get this message: &quot;<span style="font-weight: bold;">ffdec_mpeg4:input format was not set before data start</span>

&quot;.<br>Here&#39;s my gst core:<br><br>.....<br><br>GstElement *pipeline, *fakesrc, *flt, *conv, *videosink,*decoder,*videoscale,*par;<br>&nbsp;&nbsp;&nbsp; GstBus* bus;<br>&nbsp;&nbsp;&nbsp; GMainLoop *loop;<br><br>&nbsp;&nbsp;&nbsp; /* init GStreamer */<br>&nbsp;&nbsp;&nbsp; gst_init (NULL,NULL);
<br>&nbsp;&nbsp;&nbsp; loop = g_main_loop_new (NULL, FALSE);<br><br>&nbsp;&nbsp;&nbsp; pipeline = gst_pipeline_new (&quot;pipeline&quot;);<br>&nbsp;&nbsp;&nbsp; fakesrc = gst_element_factory_make (&quot;fakesrc&quot;, &quot;source&quot;);<br>&nbsp;&nbsp;&nbsp; decoder = gst_element_factory_make (&quot;ffdec_mpeg4&quot;,&quot;mpeg4-decoder&quot;);
<br>&nbsp;&nbsp;&nbsp; videoscale = gst_element_factory_make (&quot;videoscale&quot;, &quot;scaling-video&quot;);<br>&nbsp;&nbsp;&nbsp; par = gst_element_factory_make (&quot;capsfilter&quot;, &quot;dimens&quot;);<br><br>&nbsp;&nbsp;&nbsp; g_object_set (G_OBJECT(par), &quot;caps&quot;,
<br>&nbsp;&nbsp;&nbsp; &nbsp; gst_caps_new_simple( &quot;video/x-raw-yuv&quot;,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;width&quot;, G_TYPE_INT, 720,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;height&quot;, G_TYPE_INT, 576,NULL),<br>&nbsp;&nbsp;&nbsp; &nbsp; NULL );<br><br>&nbsp;&nbsp;&nbsp; conv = gst_element_factory_make (&quot;ffmpegcolorspace&quot;, &quot;converter&quot;);
<br>&nbsp;&nbsp;&nbsp; videosink = gst_element_factory_make (&quot;directdrawsink&quot;, &quot;directdraw&quot;);<br>&nbsp;&nbsp;&nbsp; if (!pipeline || !fakesrc || !decoder || !videoscale || !par || !conv || !videosink) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; g_print (&quot;One element could not be created\n&quot;);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /* put all elements in a bin */<br>&nbsp;&nbsp;&nbsp; gst_bin_add_many (GST_BIN (pipeline),<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fakesrc, decoder,videoscale ,par, conv, videosink, NULL);<br><br>&nbsp;&nbsp;&nbsp; /* link together */
<br>&nbsp;&nbsp;&nbsp; gst_element_link_many (fakesrc,decoder,videoscale, par, conv, videosink, NULL);<br><br><br>&nbsp;&nbsp;&nbsp; bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));<br>&nbsp;&nbsp;&nbsp; gst_bus_add_watch (bus, bus_call, loop);<br>&nbsp;&nbsp;&nbsp; gst_object_unref (bus);
<br><br>&nbsp;&nbsp;&nbsp; g_object_set (G_OBJECT (fakesrc),<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;signal-handoffs&quot;, TRUE,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;sizemax&quot;, 720 * 288 * 2,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &quot;sizetype&quot;, 2, NULL);<br><br>&nbsp;&nbsp;&nbsp; g_signal_connect (fakesrc, &quot;handoff&quot;, G_CALLBACK (cb_handoff), pParam);
<br><br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; /* Now set to playing and iterate. */<br>&nbsp;&nbsp;&nbsp; gst_element_set_state (pipeline, GST_STATE_PLAYING);<br>&nbsp;&nbsp;&nbsp; g_main_loop_run (loop);<br><br>&nbsp;&nbsp;&nbsp; /* clean up nicely */<br>&nbsp;&nbsp;&nbsp; gst_element_set_state (pipeline, GST_STATE_NULL);
<br>&nbsp;&nbsp;&nbsp; gst_object_unref (GST_OBJECT (pipeline));<br><br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br><br>...<br clear="all"><br><br>The mpeg4 stream is via tcp but I can&#39;t use tcp plugin with gstwin32 (I can&#39;t find it!), so I must use the callback.
<br><br>Thank&#39;s.<br>-- <br>Riccardo Corona