Added gst-plugins-base-subtitles0.10-0.10.34 for Meego Harmattan 1.2
[mafwsubrenderer] / gst-plugins-base-subtitles0.10 / tests / old / testsuite / embed / embed.c
1 /*
2  * Sample app for element embedding.
3  */
4
5 #ifdef HAVE_CONFIG_H
6 #include "config.h"
7 #endif
8 #include <gst/gst.h>
9 #include <gst/xoverlay/xoverlay.h>
10 #include <gtk/gtk.h>
11 #include <gdk/gdkx.h>
12
13 static void
14 cb_expose (GtkWidget * w, GdkEventExpose * ev, GstElement * e)
15 {
16   if (GST_IS_X_OVERLAY (e) &&
17       !GTK_WIDGET_NO_WINDOW (w) && GTK_WIDGET_REALIZED (w)) {
18     gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (e),
19         GDK_WINDOW_XWINDOW (w->window));
20   }
21 }
22
23 int
24 main (int argc, char *argv[])
25 {
26   GtkWidget *window, *content;
27   GstElement *testsrc, *csp, *videosink, *pipeline;
28
29   gtk_init (&argc, &argv);
30   gst_init (&argc, &argv);
31
32   pipeline = gst_element_factory_make ("pipeline", NULL);
33   testsrc = gst_element_factory_make ("videotestsrc", NULL);
34   csp = gst_element_factory_make ("ffmpegcolorspace", NULL);
35   videosink = gst_element_factory_make (DEFAULT_VIDEOSINK, NULL);
36
37   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
38   gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
39   gtk_window_set_title (GTK_WINDOW (window), "My application");
40   content = gtk_event_box_new ();
41   gtk_container_add (GTK_CONTAINER (window), content);
42   g_signal_connect (content, "expose-event", G_CALLBACK (cb_expose), videosink);
43   gtk_widget_show_all (window);
44
45   gst_bin_add_many (GST_BIN (pipeline), testsrc, csp, videosink, NULL);
46   gst_element_link_many (testsrc, csp, videosink, NULL);
47
48   g_idle_add ((GSourceFunc) gst_bin_iterate, pipeline);
49   gst_element_set_state (pipeline, GST_STATE_PLAYING);
50
51   gtk_main ();
52
53   return 0;
54 }