Fakesrc not working as exected

Mandeep Sandhu mandeepsandhu.chd at gmail.com
Wed Nov 28 03:40:57 PST 2012


Why don't you try making the same pipeline with gst-launch command and
see if it works? You can enable debugs and see whats going wrong.

It'll be quite fast to test too.

HTH,
-mandeep


On Wed, Nov 28, 2012 at 4:41 PM, deepthips <deepthips at tataelxsi.co.in> wrote:
> For testing whether fakesrc is working correctly in my arm board, I needed to
> test some of its properties. To start with, I took the common test
> application found in web for fakesrc.  [ Below] . But I expected it to show
> black and white images. Nothing came. The print <<< ------------ In
> cb_handoff  >>>> also didnt come.  Is there something I missed.?
> Thanks for your time.
>
>
>
>
>
> #include <string.h> /* for memset () */
> #include <gst/gst.h>
>
> static void
> cb_handoff (GstElement *fakesrc,
>             GstBuffer  *buffer,
>             GstPad     *pad,
>             gpointer    user_data)
> {
>   static gboolean white = FALSE;
> printf("\n ------------ In cb_handoff \n");
>
>   /* this makes the image black/white */
>   memset (GST_BUFFER_DATA (buffer), white ? 0xff : 0x0,
>           GST_BUFFER_SIZE (buffer));
>   white = !white;
> }
>
> gint
> main (gint   argc,
>       gchar *argv[])
> {
>   GstElement *pipeline, *fakesrc, *flt, *conv, *videosink;
>   GMainLoop *loop;
>
>   /* init GStreamer */
>   gst_init (&argc, &argv);
>   loop = g_main_loop_new (NULL, FALSE);
>
>   /* setup pipeline */
>   pipeline = gst_pipeline_new ("pipeline");
>   fakesrc = gst_element_factory_make ("fakesrc", "source");
>   flt = gst_element_factory_make ("capsfilter", "flt");
>   conv = gst_element_factory_make ("ffmpegcolorspace", "conv");
>   videosink = gst_element_factory_make ("xvimagesink", "videosink");
>
>   /* setup */
>   g_object_set (G_OBJECT (flt), "caps",
>                 gst_caps_new_simple ("video/x-raw-rgb",
>                                      "width", G_TYPE_INT, 384,
>                                      "height", G_TYPE_INT, 288,
>                                      "framerate", GST_TYPE_FRACTION, 1, 1,
>                                      "bpp", G_TYPE_INT, 16,
>                                      "depth", G_TYPE_INT, 16,
>                                      "endianness", G_TYPE_INT, G_BYTE_ORDER,
>                                      NULL), NULL);
>   gst_bin_add_many (GST_BIN (pipeline), fakesrc, flt, conv, videosink,
> NULL);
>   gst_element_link_many (fakesrc, flt, conv, videosink, NULL);
>
>   /* setup fake source */
>   g_object_set (G_OBJECT (fakesrc),
>                 "signal-handoffs", TRUE,
>                 "sizemax", 384 * 288 * 2,
>                 "sizetype", 2, NULL);
>   g_signal_connect (fakesrc, "handoff", G_CALLBACK (cb_handoff), NULL);
>
>   /* play */
>   gst_element_set_state (pipeline, GST_STATE_PLAYING);
>   g_main_loop_run (loop);
>
>   /* clean up */
>   gst_element_set_state (pipeline, GST_STATE_NULL);
>   gst_object_unref (GST_OBJECT (pipeline));
>
>   return 0;
> }
>
>
>
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Fakesrc-not-working-as-exected-tp4657100.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list