c830cc8ff222036b4e26e8dd974432240b1ae4ac
[platform/upstream/gstreamer.git] / test / videotest2.c
1 #include <gnome.h>
2 #include <gst/gst.h>
3
4 static gboolean
5 idle_func (gpointer data) 
6 {
7   gst_bin_iterate(GST_BIN(data));
8
9   return TRUE;
10 }
11
12 int 
13 main (int argc,char *argv[]) 
14 {
15   GstElement *bin;
16   GstElement *src;
17   GstElement *videosink;
18
19   GtkWidget *appwindow;
20   GtkWidget *vbox1;
21   GtkWidget *button;
22   guint32 draw;
23   GtkWidget *gtk_socket;
24
25
26   gst_init(&argc,&argv);
27
28   gnome_init("Videotest","0.0.1",argc,argv);
29
30   bin = gst_bin_new("bin");
31
32   src = gst_elementfactory_make ("v4lsrc", "src");
33   gtk_object_set(GTK_OBJECT(src),"format",9,NULL);
34   gtk_object_set(GTK_OBJECT(src),"width",320,"height",240,NULL);
35   //gtk_object_set(GTK_OBJECT(src),"width",100,"height",100,NULL);
36
37   videosink = gst_elementfactory_make ("xvideosink", "videosink");
38   gtk_object_set(GTK_OBJECT(videosink),"width",320,"height",240,NULL);
39
40   gst_bin_add(GST_BIN(bin),GST_ELEMENT(src));
41   gst_bin_add(GST_BIN(bin),GST_ELEMENT(videosink));
42
43   gst_pad_connect(gst_element_get_pad(src,"src"),
44                   gst_element_get_pad(videosink,"sink"));
45
46   appwindow = gnome_app_new("Videotest","Videotest");
47
48   vbox1 = gtk_vbox_new (FALSE, 0);
49   gtk_widget_show (vbox1);
50
51   button = gtk_button_new_with_label(_("test"));//_with_label (_("chup"));
52   gtk_widget_show (button);
53   gtk_box_pack_start (GTK_BOX (vbox1), button, FALSE, FALSE, 0);
54
55   draw = gst_util_get_int_arg (GTK_OBJECT (videosink), "xid"),
56
57   gtk_socket = gtk_socket_new ();
58   gtk_widget_show (gtk_socket);
59
60   gnome_app_set_contents(GNOME_APP(appwindow), vbox1);
61
62   gtk_box_pack_start (GTK_BOX (vbox1),
63                       GTK_WIDGET(gtk_socket),
64                       TRUE, TRUE, 0);
65
66   gtk_widget_realize (gtk_socket);
67   gtk_socket_steal (GTK_SOCKET (gtk_socket), draw);
68                                                                 
69   gtk_object_set(GTK_OBJECT(appwindow),"allow_grow",TRUE,NULL);
70   gtk_object_set(GTK_OBJECT(appwindow),"allow_shrink",TRUE,NULL);
71
72   gtk_widget_show_all(appwindow);
73
74   gst_element_set_state(GST_ELEMENT(bin),GST_STATE_PLAYING);
75
76   gtk_object_set(GTK_OBJECT(src),"bright",32000,"contrast", 32000,NULL);
77
78   //gtk_object_set(GTK_OBJECT(src),"tune",133250,NULL);
79   g_idle_add(idle_func,bin);
80
81   gtk_main();
82
83   exit (0);
84 }
85