add: gtx->priv->ev_queue = xine_event_new_queue (gtx->priv->stream);
context: gtk_xine_realize (GtkWidget *widget){	GtkXine *gtx;	const char *const *autoplug_list;	int i = 0;	g_message ("gtk_xine_realize");	g_return_if_fail (widget != NULL);	g_return_if_fail (GTK_IS_XINE (widget));	g_message ("gtk_xine_realize");	gtx = GTK_XINE (widget);	/* set realized flag */	GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);	/* create our own video window */	gtx->priv->video_window = XCreateSimpleWindow		(gdk_display,		 GDK_WINDOW_XWINDOW (gtk_widget_get_parent_window (widget)),		 0, 0,		 widget->allocation.width, widget->allocation.height,		 1, BLACK_PIXEL, BLACK_PIXEL);	widget->window = gdk_window_foreign_new (gtx->priv->video_window);	/* track configure events of toplevel window */	g_signal_connect (GTK_OBJECT (gtk_widget_get_toplevel (widget)),			  "configure-event",			  GTK_SIGNAL_FUNC (configure_cb), gtx);	/* Init threads in X and setup the needed X stuff */	if (!XInitThreads ())	{		g_signal_emit (G_OBJECT (gtx),				gtx_table_signals[ERROR], 0,				0,				_("Could not initialise the threads support.\n"				"You should install a thread-safe Xlib."));		return;	}	gtx->priv->display = XOpenDisplay (NULL);	XLockDisplay (gtx->priv->display);	gtx->priv->screen = DefaultScreen (gtx->priv->display);	if (XShmQueryExtension (gtx->priv->display) == True)	{		gtx->priv->completion_event =		    XShmGetEventBase (gtx->priv->display) + ShmCompletion;	} else {		gtx->priv->completion_event = -1;	}	XSelectInput (gtx->priv->display, gtx->priv->video_window,		      StructureNotifyMask | ExposureMask		      | ButtonPressMask | PointerMotionMask		      | KeyPressMask);	/* Get more configuration options */	load_config_from_gconf (gtx);	/* load audio, video drivers */	gtx->priv->vo_driver = load_video_out_driver (gtx);	if (!gtx->priv->vo_driver)	{		XUnlockDisplay (gtx->priv->display);		g_message ("foooo");		g_signal_emit (G_OBJECT (gtx),				gtx_table_signals[ERROR], 0,				GTX_STARTUP,				_("Could not find a suitable video output."));		return;	}	gtx->priv->stream = xine_stream_new (gtx->priv->xine,			gtx->priv->ao_driver, gtx->priv->vo_driver);//	gtx->priv->ev_queue = xine_event_new_queue (gtx->priv->stream);	XUnlockDisplay (gtx->priv->display);	/* Setup xine events and codec reporting *///	xine_event_create_listener_thread (gtx->priv->ev_queue,//			xine_event, (void *) gtx);//	xine_register_report_codec_cb(gtx->priv->xine, codec_reporting,//			(void *) gtx);	scrsaver_init (gtx->priv->display);#if 0	/* Can we play DVDs and VCDs ? */	autoplug_list = xine_get_autoplay_input_plugin_ids (gtx->priv->xine);	while (autoplug_list[i])	{		if (strcmp (autoplug_list[i], "VCD") == 0)			gtx->priv->can_vcd = TRUE;		else if (strcmp (autoplug_list[i], "NAV") == 0)			gtx->priv->can_dvd = TRUE;		i++;	}#endif	/* now, create a xine thread */	pthread_create (&gtx->priv->thread, NULL, xine_thread, gtx);	return;}