<div dir="ltr">Hey, <div><br></div><div>1 - You are not creating any identity element in your pipeline.</div><div>2 - You're trying to set the handoff cb on your autovideosink, not on your (yet to be created) identity element. </div><div><br></div><div>Cheers</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-04-07 8:50 GMT+02:00 Mayank Agarwal <span dir="ltr"><<a href="mailto:mayank77fromindia@gmail.com" target="_blank">mayank77fromindia@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I have modified basic tutorial two to include identity element but<br>
i am not able to get the callback called.<br>
<br>
Here is the example<br>
<br>
#include <gst/gst.h><br>
<br>
static void<br>
handoff(GstElement *object,<br>
GstBuffer *arg0,<br>
GstPad *arg1,<br>
gpointer user_data)<br>
{<br>
<br>
printf("comes here");<br>
<br>
}<br>
<br>
<br>
<br>
<br>
int main(int argc, char *argv[]) {<br>
  GstElement *pipeline, *source, *sink;<br>
  GstBus *bus;<br>
  GstMessage *msg;<br>
  GstStateChangeReturn ret;<br>
  GstElement *identity;<br>
<br>
  /* Initialize GStreamer */<br>
  gst_init (&argc, &argv);<br>
<br>
  /* Create the elements */<br>
  source = gst_element_factory_make ("videotestsrc", "source");<br>
<br>
  sink = gst_element_factory_make ("autovideosink", "sink");<br>
<br>
  /* Create the empty pipeline */<br>
  pipeline = gst_pipeline_new ("test-pipeline");<br>
<br>
  if (!pipeline || !source || !sink) {<br>
    g_printerr ("Not all elements could be created.\n");<br>
    return -1;<br>
  }<br>
<br>
  /* Build the pipeline */<br>
  gst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);<br>
  if (gst_element_link (source, sink) != TRUE) {<br>
    g_printerr ("Elements could not be linked.\n");<br>
    gst_object_unref (pipeline);<br>
    return -1;<br>
  }<br>
<br>
  /* Modify the source's properties */<br>
  g_object_set (source, "pattern", 0, NULL);<br>
  g_object_set(G_OBJECT(sink), "signal-handoffs", TRUE, NULL);<br>
  g_signal_connect(sink, "handoff",G_CALLBACK(handoff), NULL);<br>
<br>
  /* Start playing */<br>
  ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);<br>
  if (ret == GST_STATE_CHANGE_FAILURE) {<br>
    g_printerr ("Unable to set the pipeline to the playing state.\n");<br>
    gst_object_unref (pipeline);<br>
    return -1;<br>
  }<br>
<br>
  /* Wait until error or EOS */<br>
  bus = gst_element_get_bus (pipeline);<br>
  msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,<br>
GST_MESSAGE_ERROR | GST_MESSAGE_EOS);<br>
<br>
  /* Parse message */<br>
  if (msg != NULL) {<br>
    GError *err;<br>
    gchar *debug_info;<br>
<br>
    switch (GST_MESSAGE_TYPE (msg)) {<br>
      case GST_MESSAGE_ERROR:<br>
        gst_message_parse_error (msg, &err, &debug_info);<br>
        g_printerr ("Error received from element %s: %s\n",<br>
GST_OBJECT_NAME (msg->src), err->message);<br>
        g_printerr ("Debugging information: %s\n", debug_info ?<br>
debug_info : "none");<br>
        g_clear_error (&err);<br>
        g_free (debug_info);<br>
        break;<br>
      case GST_MESSAGE_EOS:<br>
        g_print ("End-Of-Stream reached.\n");<br>
        break;<br>
      default:<br>
        /* We should not reach here because we only asked for ERRORs and EOS */<br>
        g_printerr ("Unexpected message received.\n");<br>
        break;<br>
    }<br>
    gst_message_unref (msg);<br>
  }<br>
<br>
  /* Free resources */<br>
  gst_object_unref (bus);<br>
  gst_element_set_state (pipeline, GST_STATE_NULL);<br>
  gst_object_unref (pipeline);<br>
  return 0;<br>
}<br>
<br>
<br>
and the errors i am getting are:<br>
<br>
(btutorialtwo:3807): GLib-GObject-WARNING **: g_object_set_valist:<br>
object class 'GstAutoVideoSink' has no property named<br>
'signal-handoffs'<br>
<br>
(btutorialtwo:3807): GLib-GObject-WARNING **:<br>
/build/buildd/glib2.0-2.40.2/./gobject/gsignal.c:2462: signal<br>
'handoff' is invalid for instance '0x9950018' of type<br>
'GstAutoVideoSink'<br>
<br>
although videotestsrc is playing fine.<br>
<br>
If this is not the correct way of using identity element any<br>
example/links of using identity element using which<br>
i can be able to calculate video frame rate.<br>
<br>
<br>
Regards<br>
Mayank<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br></div>