[gst-devel] Converting pipeline to C

Gabriel Duarte confusosk8 at gmail.com
Wed Oct 28 03:12:13 CET 2009


sorry, I sent the wrong code, this is the right:



On Tue, Oct 27, 2009 at 8:24 PM, Gabriel Duarte <confusosk8 at gmail.com>wrote:

> hello all, I'm trying to convert this pipeline to C, but I'm having
> problems....
>
>
> gst-launch-0.10 dv1394src num-buffers=8192 ! dvdemux ! dvdec ! xvimagesink
>  sync=false
>
>
> I've wrote this code:
>
>
> #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;
>
>   /* 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;
> }
>
>
>
> Any ideas???
>
> Best regards :D
>
>
>
>
>
>
> --
> Gabriel Duarte
> Linux User #471185
> Rio de Janeiro - RJ
> http://kinuxlinux.org/gabriel_duarte
>
> Phones:
> (55) (21) 9463-7760 /*Mobile*/
> (55) (21) 2464-9302 /*Home*/
> (55) (21) 2529-5080 /*Work*/
>
>
> -----BEGIN GEEK CODE BLOCK-----
> Version: 3.12
> GCS d- s: a--- C++ UL+++ P L++++ E- W+ N++ o++ K++ w---
> O- M- V- PS++ PE++ Y PGP- t++ 5-- X+++ R tv++ b++ DI+ D++
> G++ e+ h* r+ y++++
> ------END GEEK CODE BLOCK------
>



-- 
Gabriel Duarte
Linux User #471185
Rio de Janeiro - RJ
http://kinuxlinux.org/gabriel_duarte

Phones:
(55) (21) 9463-7760 /*Mobile*/
(55) (21) 2464-9302 /*Home*/
(55) (21) 2529-5080 /*Work*/


-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s: a--- C++ UL+++ P L++++ E- W+ N++ o++ K++ w---
O- M- V- PS++ PE++ Y PGP- t++ 5-- X+++ R tv++ b++ DI+ D++
G++ e+ h* r+ y++++
------END GEEK CODE BLOCK------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20091028/3a423494/attachment.htm>


More information about the gstreamer-devel mailing list