Not able to call handoff callback

Sérgio Agostinho sergio.r.agostinho at gmail.com
Tue Apr 7 03:51:50 PDT 2015


Hey,

1 - You are not creating any identity element in your pipeline.
2 - You're trying to set the handoff cb on your autovideosink, not on your
(yet to be created) identity element.

Cheers

2015-04-07 8:50 GMT+02:00 Mayank Agarwal <mayank77fromindia at gmail.com>:

> Hi,
>
> I have modified basic tutorial two to include identity element but
> i am not able to get the callback called.
>
> Here is the example
>
> #include <gst/gst.h>
>
> static void
> handoff(GstElement *object,
> GstBuffer *arg0,
> GstPad *arg1,
> gpointer user_data)
> {
>
> printf("comes here");
>
> }
>
>
>
>
> int main(int argc, char *argv[]) {
>   GstElement *pipeline, *source, *sink;
>   GstBus *bus;
>   GstMessage *msg;
>   GstStateChangeReturn ret;
>   GstElement *identity;
>
>   /* Initialize GStreamer */
>   gst_init (&argc, &argv);
>
>   /* Create the elements */
>   source = gst_element_factory_make ("videotestsrc", "source");
>
>   sink = gst_element_factory_make ("autovideosink", "sink");
>
>   /* Create the empty pipeline */
>   pipeline = gst_pipeline_new ("test-pipeline");
>
>   if (!pipeline || !source || !sink) {
>     g_printerr ("Not all elements could be created.\n");
>     return -1;
>   }
>
>   /* Build the pipeline */
>   gst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);
>   if (gst_element_link (source, sink) != TRUE) {
>     g_printerr ("Elements could not be linked.\n");
>     gst_object_unref (pipeline);
>     return -1;
>   }
>
>   /* Modify the source's properties */
>   g_object_set (source, "pattern", 0, NULL);
>   g_object_set(G_OBJECT(sink), "signal-handoffs", TRUE, NULL);
>   g_signal_connect(sink, "handoff",G_CALLBACK(handoff), NULL);
>
>   /* Start playing */
>   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
>   if (ret == GST_STATE_CHANGE_FAILURE) {
>     g_printerr ("Unable to set the pipeline to the playing state.\n");
>     gst_object_unref (pipeline);
>     return -1;
>   }
>
>   /* Wait until error or EOS */
>   bus = gst_element_get_bus (pipeline);
>   msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
> GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
>
>   /* Parse message */
>   if (msg != NULL) {
>     GError *err;
>     gchar *debug_info;
>
>     switch (GST_MESSAGE_TYPE (msg)) {
>       case GST_MESSAGE_ERROR:
>         gst_message_parse_error (msg, &err, &debug_info);
>         g_printerr ("Error received from element %s: %s\n",
> GST_OBJECT_NAME (msg->src), err->message);
>         g_printerr ("Debugging information: %s\n", debug_info ?
> debug_info : "none");
>         g_clear_error (&err);
>         g_free (debug_info);
>         break;
>       case GST_MESSAGE_EOS:
>         g_print ("End-Of-Stream reached.\n");
>         break;
>       default:
>         /* We should not reach here because we only asked for ERRORs and
> EOS */
>         g_printerr ("Unexpected message received.\n");
>         break;
>     }
>     gst_message_unref (msg);
>   }
>
>   /* Free resources */
>   gst_object_unref (bus);
>   gst_element_set_state (pipeline, GST_STATE_NULL);
>   gst_object_unref (pipeline);
>   return 0;
> }
>
>
> and the errors i am getting are:
>
> (btutorialtwo:3807): GLib-GObject-WARNING **: g_object_set_valist:
> object class 'GstAutoVideoSink' has no property named
> 'signal-handoffs'
>
> (btutorialtwo:3807): GLib-GObject-WARNING **:
> /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c:2462: signal
> 'handoff' is invalid for instance '0x9950018' of type
> 'GstAutoVideoSink'
>
> although videotestsrc is playing fine.
>
> If this is not the correct way of using identity element any
> example/links of using identity element using which
> i can be able to calculate video frame rate.
>
>
> Regards
> Mayank
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150407/4ecc8381/attachment-0001.html>


More information about the gstreamer-devel mailing list