From b634b8ccca4c643d6e31fe991ff1a1ef130d32d4 Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Thu, 27 Dec 2007 17:26:16 +0000
Subject: [PATCH] more localization of gui stuff

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/console_gui.c   | 14 ++++----------
 channels/console_video.c | 10 +++++++++-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/channels/console_gui.c b/channels/console_gui.c
index 0d3a19add0..80ad58df31 100644
--- a/channels/console_gui.c
+++ b/channels/console_gui.c
@@ -744,7 +744,6 @@ static void sdl_setup(struct video_desc *env)
 	int depth, maxw, maxh;
 	const SDL_VideoInfo *info;
 	int kp_w = 0, kp_h = 0;	/* keypad width and height */
-	int sdl_ok = 0;
 	struct gui_info *gui = env->gui;
 
 	/*
@@ -775,9 +774,6 @@ static void sdl_setup(struct video_desc *env)
 		env->gui = gui = gui_init();
 	if (!gui)
 		goto no_sdl;
-	/* initialize grab coordinates */
-	env->out.loc_src.x = 0;
-	env->out.loc_src.y = 0;
 
 	keypad_setup(gui, env->keypad_file);
 #if 0
@@ -811,7 +807,7 @@ static void sdl_setup(struct video_desc *env)
 	/* display the skin, but do not free it as we need it later to
 	 * restore text areas and maybe sliders too.
 	 */
-	if (gui && gui->keypad) {
+	if (gui->keypad) {
 		struct SDL_Rect *dest = &gui->win[WIN_KEYPAD].rect;
 		dest->x = 2*BORDER + env->in.rem_dpy.w;
 		dest->y = BORDER;
@@ -820,13 +816,11 @@ static void sdl_setup(struct video_desc *env)
 		SDL_BlitSurface(gui->keypad, NULL, gui->screen, dest);
 		SDL_UpdateRects(gui->screen, 1, dest);
 	}
-	env->in.dec_in_cur = &env->in.dec_in[0];
-	env->in.dec_in_dpy = NULL;	/* nothing to display */
-	sdl_ok = 1;
+	return;
 
 no_sdl:
-	if (!sdl_ok)	/* free resources in case of errors */
-		env->gui = cleanup_sdl(gui);
+	/* free resources in case of errors */
+	env->gui = cleanup_sdl(gui);
 }
 
 /*
diff --git a/channels/console_video.c b/channels/console_video.c
index a1af9a4543..6e0df5cf24 100644
--- a/channels/console_video.c
+++ b/channels/console_video.c
@@ -1079,10 +1079,18 @@ static void *video_thread(void *arg)
 		}
 	}
 	sdl_setup(env);
-	ast_mutex_init(&env->in.dec_in_lock);
 	if (!ast_strlen_zero(save_display))
 		setenv("DISPLAY", save_display, 1);
 
+        /* initialize grab coordinates */
+        env->out.loc_src.x = 0;
+        env->out.loc_src.y = 0;
+
+	/* reset the pointers to the current decoded image */
+	env->in.dec_in_cur = &env->in.dec_in[0];
+	env->in.dec_in_dpy = NULL;	/* nothing to display */
+	ast_mutex_init(&env->in.dec_in_lock);	/* used to sync decoder and renderer */
+
 	if (video_open(&env->out)) {
 		ast_log(LOG_WARNING, "cannot open local video source\n");
 	} else {
-- 
GitLab