<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div>Thanks I thought I was registering a call back . I am not using a main loop as its a live stream . I am using the cairo draw call back in the same code seperate pipeline and I am running in qt windows 7. The problem is i can't run a main loop as it does
not exit so I can not return from my class. So the rest of my code executes . Maybe a little inexperience here.</div>
<div><br>
</div>
<div> Robin</div>
<br>
<br>
-------- Original message --------<br>
From: Michael Gruner <michael.gruner@ridgerun.com><br>
Date:05/05/2014 21:04 (GMT+02:00) <br>
To: Discussion of the development of and with GStreamer <gstreamer-devel@lists.freedesktop.org>
<br>
Subject: Re: No data from Appsink <br>
<br>
<div>
<div class="moz-cite-prefix">Hi Robin, <br>
<br>
Signals won't work unless there is a main loop running (or a similar listener mechanism). In your app, when you wait for errors or EOS, are you waiting on a GMainLoop? If for some reason you can't do so, you might want to try registering callbacks to the appsink
instead of using signals.<br>
<br>
Michael<br>
<br>
On 05/05/2014 07:51 AM, Robin Aproskie wrote:<br>
</div>
<blockquote cite="mid:B9F9505C77148F4B9CA1064B8C28F31502497A7D7879@TELCPTEXM2.tellumat.co.za" type="cite">
<meta name="GENERATOR" content="MSHTML 11.00.9600.16521">
<font face="Arial"><font color="#008000"><font color="#008000"><font color="#008000">
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014">Hi
</span></font></div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014"></span></font> </div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014">I have a simple pipeline as below code shows." udpsrc->appsink "
</span></font></div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014"></span></font> </div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014">I am sending a datagram to the localhost UDP port with the below struct; I am receiving the data as per wireshark; but I do not get the appsink callback to trigger to tell
me there is data, do I need another element of do I need to format the datagram with cap. How do I do this? at the moment I just need raw 54 byte struct data.</span></font></div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014"></span></font> </div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014">Thanks</span></font></div>
<div><font color="#000000" face="Consolas" size="2"><span class="001103513-05052014">Robin</span></font></div>
<div> </div>
<div> </div>
<div><font size="2"><font color="#000000" face="Consolas">typedef</font><font color="#000000"><font face="Consolas"> struct</font></font></font></div>
<div><font color="#000000" face="Consolas" size="2">{</font></div>
<div><font color="#000000" face="Consolas" size="2">float <span class="001103513-05052014">term</span>;</font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> lonUav;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> groundTrack;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> altitude;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> latTgt;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> lonTgt;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> tgtDistance;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> scale;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> payAzimuth;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> payDepression;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> payLoadFov;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">float</font><font color="#000000" face="Consolas"> trueNorth;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">short</font><font color="#000000" face="Consolas"> display;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">short</font><font color="#000000" face="Consolas"> resolution;</font></font></div>
<div><font size="2"><font color="#000000" face="Consolas">short</font><font color="#000000" face="Consolas"> endStream;</font></font></div>
<div><font color="#000000" face="Consolas" size="2">}udpOverlayStruct;</font></div>
<div> </div>
<font size="2"><font size="2"><font color="#000000" size="2">
<div><font face="Consolas">udpOverlayStruct rawOverlayData;</font></div>
<div> </div>
</font></font></font>
<div><font color="#000000" face="Consolas" size="2">/* The appsink has received a buffer */</font></div>
</font></font></font><font face="Consolas"><font face="Consolas"><font face="Consolas"></font></font></font>
<div><font face="Consolas"><font face="Consolas"><font face="Consolas"><font size="2">void</font></font></font></font><font face="Consolas"><font face="Consolas"><font size="2"> new_buffer (GstElement *app_sink, udpOverlayStruct* data) {</font></font></font></div>
<font face="Consolas"><font face="Consolas">
<div><font size="2">GstBuffer *buffer;</font></div>
<div><font size="2">udpOverlayStruct *temp = (udpOverlayStruct*)buffer->offset;</font></div>
</font></font>
<div><font face="Consolas"><font face="Consolas"><font face="Consolas"><font size="2">/* Retrieve the buffer */</font></font></font></font></div>
<font face="Consolas"><font face="Consolas"></font></font>
<div><font face="Consolas"><font face="Consolas"><font size="2">g_signal_emit_by_name (app_sink,
</font></font></font><font face="Consolas"><font face="Consolas"><font face="Consolas" size="2">"pull-buffer"</font></font></font><font face="Consolas"><font face="Consolas"><font size="2">, &buffer);</font></font></font></div>
<font face="Consolas"><font face="Consolas"></font></font>
<div><font face="Consolas"><font face="Consolas"><font face="Consolas" size="2">if</font></font></font><font face="Consolas"><font face="Consolas"><font size="2"> (buffer)
</font></font></font></div>
<font face="Consolas"><font face="Consolas">
<div><font size="2">{</font></div>
<div><font size="2">data->altitude = temp->altitude;</font></div>
<div><font size="2">gst_buffer_unref (buffer);</font></div>
<div><font size="2">}</font></div>
<div><font size="2">}</font></div>
<div> </div>
<div><span class="001103513-05052014"><font face="Arial" size="2">void main{</font></span></div>
<div><span class="001103513-05052014">
<p><font size="2">gst_init <span class="001103513-05052014">(</span><span class="001103513-05052014">NULL,NULL</span>);</font></p>
</span></div>
<div><font size="2">app_pipeline = gst_pipeline_new (</font><font size="2">"UDP-pipeline"</font><font size="2">);</font></div>
<div><font size="2">app_sink = gst_element_factory_make (</font><font size="2">"appsink", "app_sink"</font><font size="2">);</font></div>
<div><font size="2">rawCaps = gst_caps_from_string(NULL);</font></div>
<div><font size="2">g_object_set (app_sink, </font><font size="2">"emit-signals", TRUE,"blocksize",54,"max-buffers"</font><font size="2">,1, NULL);</font></div>
<div><font size="2">g_signal_connect (app_sink, </font><font size="2">"new-buffer"</font><font size="2">, G_CALLBACK (new_buffer), &rawOverlayData);</font></div>
<div><font size="2">app_udpsrc = gst_element_factory_make (</font><font size="2">"udpsrc"</font><font size="2">, NULL);</font></div>
<div> </div>
<div><font size="2">g_object_set (G_OBJECT (app_udpsrc), </font><font size="2">"address", "127.0.0.1"</font><font size="2">, NULL);</font></div>
<div><font size="2">g_object_set (G_OBJECT (app_udpsrc), </font><font size="2">"port"</font><font size="2">, 2010, NULL);</font></div>
<div><font size="2"> </font></div>
<div><font size="2">gst_bin_add_many (GST_BIN (app_pipeline),app_udpsrc, app_sink,NULL);</font></div>
<div><font size="2">error *= gst_element_link (app_udpsrc, app_sink);</font></div>
<div> </div>
<div><font size="2">ret = gst_element_set_state (app_pipeline, GST_STATE_PLAYING);</font></div>
<div><font size="2">if</font><font size="2"> (ret == GST_STATE_CHANGE_FAILURE) </font>
</div>
<div><font size="2">{</font></div>
<div><font size="2">g_printerr (</font><font size="2">"Unable to set the pipeline to the playing state.\n"</font><font size="2">);</font></div>
<div><font size="2">gst_object_unref (pipeline);</font></div>
<div><font size="2">}</font></div>
<div> </div>
<div><span class="001103513-05052014"><font size="2">}</font></span></div>
<div><font size="2">/* Wait until error or EOS */</font></div>
<div><span class="001103513-05052014"></span> </div>
</font></font></font>
<p>**********************************************************************<br>
Relevant company disclaimers are available at the following addresses:<br>
Tellumat (Pty) Ltd e-mail: <a class="moz-txt-link-freetext" href="mailto:disclaimer@tellumat.com?Subject=Tellumat_Disclaimer">
mailto:disclaimer@tellumat.com?Subject=Tellumat_Disclaimer</a><br>
Web: <a class="moz-txt-link-freetext" href="http://www.tellumat.com/email.aspx">
http://www.tellumat.com/email.aspx</a><br>
**********************************************************************</p>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset> <br>
<pre wrap="">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
</blockquote>
<br>
</div>
<p>**********************************************************************<br>
Relevant company disclaimers are available at the following addresses:<br>
Tellumat (Pty) Ltd e-mail: mailto:disclaimer@tellumat.com?Subject=Tellumat_Disclaimer<br>
Web: http://www.tellumat.com/email.aspx<br>
**********************************************************************</p></body>
</html>