add: data = g_async_queue_try_pop (bvw->priv->queue); if (data != NULL) { g_assert (data->signal == MESSAGE_ASYNC);  g_set_error (error, 0, 0, data->msg); g_free (data->msg); g_free (data);  return; }
context: xine_error (BaconVideoWidget *bvw, GError **error){	int err;	err = xine_get_error (bvw->priv->stream);	if (err == XINE_ERROR_NONE)		return;	switch (err)	{	case XINE_ERROR_NO_INPUT_PLUGIN:	case XINE_ERROR_NO_DEMUX_PLUGIN:		g_set_error (error, 0, 0, _("There is no plugin to handle this"					" movie"));		break;	case XINE_ERROR_DEMUX_FAILED:		g_set_error (error, 0, 0, _("This movie is broken and can not "					"be played further"));		break;	case XINE_ERROR_MALFORMED_MRL:		g_set_error (error, 0, 0, _("This location is not "					"a valid one"));		break;	case XINE_ERROR_INPUT_FAILED:		g_set_error (error, 0, 0, _("This movie could not be opened"));		break;	default:		g_set_error (error, 0, 0, _("Generic Error"));		break;	}}