[gst-devel] Showing a video in c
Jakob Sloth
jakobsloth at hotmail.com
Tue Aug 7 15:20:51 CEST 2007
Hi
im trying to write a simple media player i c.
my problem is that the movie isn't shown in the gtk window that i create.
Instead it is shown in a new window that i havent created.
My program is as follows:
////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <X11/Xlib.h>
#include <gst/gst.h>
#include <gst/interfaces/xoverlay.h>
#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
GstElement *playbin, *videosink, *audiosink;
void create_gst_playbin (void)
{
playbin = gst_element_factory_make ("playbin", "playbin");
videosink = gst_element_factory_make ("xvimagesink", "videosink");
audiosink = gst_element_factory_make ("alsasink", "audiosink");
g_object_set (videosink,
"force-aspect-ratio", false,
NULL);
g_object_set (playbin,
"audio-sink", audiosink,
"video-sink", videosink,
NULL);
}
int main(int argc, char *argv[]){
gst_init (&argc, &argv);
gtk_init(&argc, &argv);
create_gst_playbin ();
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
GtkWidget *da = gtk_drawing_area_new();
gtk_drawing_area_size(GTK_DRAWING_AREA(da),640,480);
char* path = "file:///SOME_URI";
g_object_set (playbin, "uri", path, NULL);
gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(videosink),
GDK_WINDOW_XID(da->window));
gst_element_set_state (playbin, GST_STATE_PLAYING);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////
When i run the program i get the following error:
(simple_gst:19947): Gdk-WARNING **: gdkdrawable-x11.c:878 drawable is not a
pixmap or window
I guess the error has something to do with this line:
gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(videosink),
GDK_WINDOW_XID(da->window));
Any clues?
Jakob Sloth
_________________________________________________________________
Download din yndlingsmusik på MSN Music: http://www.msn.dk/music - det er
nemt og billigt
More information about the gstreamer-devel
mailing list