rem: setup_config_video (bvw);
context: bacon_video_widget_realize (GtkWidget *widget){	GdkWindowAttr attr;	BaconVideoWidget *bvw;	bvw = BACON_VIDEO_WIDGET (widget);	if (bvw->priv->type != BVW_USE_TYPE_VIDEO)	{		g_warning ("Use type isn't video but we realized the widget");		return;	}	/* set realized flag */	GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);	/* Create the widget's window */	attr.x = widget->allocation.x;	attr.y = widget->allocation.y;	attr.width = widget->allocation.width;	attr.height = widget->allocation.height;	attr.window_type = GDK_WINDOW_CHILD;	attr.wclass = GDK_INPUT_OUTPUT;	attr.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK		| GDK_POINTER_MOTION_MASK		| GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK;	widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),			&attr, GDK_WA_X | GDK_WA_Y);	gdk_window_show (widget->window);	/* Flush, so that the window is really shown */	gdk_flush ();	gdk_window_set_user_data (widget->window, bvw);	bvw->priv->video_window = widget->window;	/* Set a black background */	gdk_draw_rectangle (widget->window, widget->style->black_gc, TRUE,			attr.x, attr.y,			attr.width, attr.height);	/* track configure events of toplevel window */	g_signal_connect (G_OBJECT (gtk_widget_get_toplevel (widget)),			"configure-event",			G_CALLBACK (configure_cb), bvw);	/* get screen size changes */	g_signal_connect (G_OBJECT (gdk_screen_get_default ()),			"size-changed", G_CALLBACK (size_changed_cb), bvw);	/* Now onto the video out driver */	bvw->priv->display = XOpenDisplay (gdk_display_get_name			(gdk_display_get_default ()));	bvw->priv->screen = DefaultScreen (bvw->priv->display);	bvw->priv->vo_driver = load_video_out_driver		(bvw, FALSE);	if (bvw->priv->vo_driver == NULL)	{		signal_data *sigdata;		bvw->priv->vo_driver = load_video_out_driver (bvw, TRUE);		/* We need to use an async signal, otherwise we try to		 * unrealize the widget before it's finished realizing */		sigdata = g_new0 (signal_data, 1);		sigdata->signal = ERROR_ASYNC;		sigdata->msg = _("No video output is available. Make sure that the program is correctly installed.");		sigdata->fatal = TRUE;		g_async_queue_push (bvw->priv->queue, sigdata);		g_idle_add ((GSourceFunc) bacon_video_widget_idle_signal, bvw);	}	bvw->priv->ao_driver = load_audio_out_driver (bvw, NULL);	setup_config_video (bvw);	if (bvw->priv->type == BVW_USE_TYPE_VIDEO			&& bvw->priv->ao_driver != NULL)	{		bvw->priv->vis = xine_post_init (bvw->priv->xine,				bvw->priv->vis_name, 0,				&bvw->priv->ao_driver, &bvw->priv->vo_driver);	}	bvw->priv->have_xvidmode = bacon_resize_init ();	bvw->priv->stream = xine_stream_new (bvw->priv->xine,			bvw->priv->ao_driver, bvw->priv->vo_driver);	setup_config_stream (bvw);	bvw->priv->ev_queue = xine_event_new_queue (bvw->priv->stream);	/* Setup xine events */	xine_event_create_listener_thread (bvw->priv->ev_queue,			xine_event, (void *) bvw);#ifdef HAVE_NVTV	if (!(nvtv_simple_init() && nvtv_enable_autoresize(TRUE))) {		nvtv_simple_enable(FALSE);	} #endif	return;}