Hi,<br>during my test with gstreamer app for win32 I've used a fakesrc with an handoff function in which I obtain some mpeg4 fragment that is put into a gstbuffer.<br>I've also used the right plugin to visualize the mpeg4 packet on my directdraw sink.
<br>It works weel only for the first 2-3 packets received and then the refresh of the images stops and, if I run in debug mode, I can see that some thread stop its execution but there isn't gstreamer thread.<br>This is main part of may handoff:
<br><br><br>static void cb_handoff (GstElement *fakesrc,<br> GstBuffer *buffer,<br> GstPad *pad,<br> gpointer user_data)<br>{<br> MyClass* dlg=(MyClass*)user_data;<br><br> <br> //fg_image is the object that contains the corretc (I've checked it...) mpeg4 fragment
<br> //dt contains the time of the fragment<br> //dlg->t is a struct tm that allows to obtain time_t<br> <br><br> dlg->t.tm_sec=dt.sec;<br> dlg->t.tm_min=dt.min;<br> dlg->t.tm_hour=dt.hour
;<br> dlg->t.tm_mday=dt.day;<br> dlg->t.tm_mon=dt.month-1;<br> dlg->t.tm_year=dt.year-1900;<br><br> buffer->timestamp = mktime(&dlg->t);//GST_CLOCK_TIME_NONE;<br> <br> buffer->duration = GST_CLOCK_TIME_NONE;
<br><br> //fg_image->pixel_ptr contains the mpeg4 image buffer<br> gst_buffer_set_data(buffer,fg_image->pixel_ptr,fg_image->dimension);<br><br> <br> //I've also tried withot this unref/ref but nothing to do...
<br> gst_buffer_unref(buffer);<br> gst_buffer_ref(buffer);<br><br> return;<br><br>}<br><br><br><br>So, all I see is the first frame, sometimes 2 or 3 and then all is stop but I can't catch any error message in my bus_call (I've set this function with gst_bus_add_watch).Moreover if I send an eof message then gstreamer stop nicely like it was always in execution.
<br>My question is about the general usage of fakesrc: there's the need of some kind of buffering or some kind of buffer control?<br><br>Thank's and best regards.<br><br>-- <br>Riccardo Corona