[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