rem: g_async_queue_push (bvw->priv->queue, GINT_TO_POINTER (RATIO));
add: signal_data *data;  data = g_new0 (signal_data, 1); data->signal = RATIO; g_async_queue_push (bvw->priv->queue, data);
context: frame_output_cb (void *bvw_gen,		 int video_width, int video_height,		 double video_pixel_aspect,		 int *dest_x, int *dest_y,		 int *dest_width, int *dest_height,		 double *dest_pixel_aspect,		 int *win_x, int *win_y){	BaconVideoWidget *bvw = (BaconVideoWidget *) bvw_gen;	if (bvw == NULL || bvw->priv == NULL)		return;	/* correct size with video_pixel_aspect */	if (video_pixel_aspect >= bvw->priv->display_ratio)		video_width = video_width * video_pixel_aspect			/ bvw->priv->display_ratio + .5;	else		video_height = video_height * bvw->priv->display_ratio			/ video_pixel_aspect + .5;	*dest_x = 0;	*dest_y = 0;	*win_x = bvw->priv->xpos;	*win_y = bvw->priv->ypos;	if (bvw->priv->fullscreen_mode)	{		*dest_width = bvw->priv->fullscreen_rect.width;		*dest_height = bvw->priv->fullscreen_rect.height;	} else {		*dest_width = bvw->widget.allocation.width;		*dest_height = bvw->widget.allocation.height;		/* Size changed */		if (bvw->priv->video_width != video_width				|| bvw->priv->video_height != video_height)		{			bvw->priv->video_width = video_width;			bvw->priv->video_height = video_height;			if (bvw->priv->auto_resize == TRUE					&& bvw->priv->logo_mode == FALSE)			{				g_async_queue_push (bvw->priv->queue,						GINT_TO_POINTER (RATIO));				g_idle_add ((GSourceFunc)						bacon_video_widget_idle_signal,						bvw);			}		}	}	*dest_pixel_aspect = bvw->priv->display_ratio;}