From a3eaf74b6f7f0bf6d505c483f16b9c3fbe8f13b4 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Apr 2003 18:05:41 +0000 Subject: multiple init fix by Aurelien JACOBS git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9884 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_vesa.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libvo') diff --git a/libvo/vo_vesa.c b/libvo/vo_vesa.c index 65d326bd15..74ce4f869a 100644 --- a/libvo/vo_vesa.c +++ b/libvo/vo_vesa.c @@ -115,8 +115,10 @@ uint8_t multi_idx=0; /* active buffer */ /* Linux Video Overlay */ static const char *lvo_name = NULL; +static int lvo_opened = 0; #ifdef CONFIG_VIDIX static const char *vidix_name = NULL; +static int vidix_opened = 0; #endif #define HAS_DGA() (win.idx == -1) @@ -150,9 +152,9 @@ static char * vbeErrToStr(int err) static void vesa_term( void ) { int err; - if(lvo_name) vlvo_term(); + if(lvo_opened) { vlvo_term(); lvo_opened = 0; } #ifdef CONFIG_VIDIX - else if(vidix_name) vidix_term(); + else if(vidix_opened) { vidix_term(); vidix_opened = 0; } #endif if(init_state) if((err=vbeRestoreState(init_state)) != VBE_OK) PRINT_VBE_ERR("vbeRestoreState",err); init_state=NULL; @@ -939,11 +941,11 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin if(vlvo_init(width,height,x_offset,y_offset,dstW,dstH,format,dstBpp) != 0) { printf("vo_vesa: Can't initialize Linux Video Overlay\n"); - lvo_name = NULL; vesa_term(); return -1; } else printf("vo_vesa: Using video overlay: %s\n",lvo_name); + lvo_opened = 1; } #ifdef CONFIG_VIDIX else @@ -954,12 +956,12 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin video_mode_info.XResolution,video_mode_info.YResolution) != 0) { printf("vo_vesa: Can't initialize VIDIX driver\n"); - vidix_name = NULL; vesa_term(); return -1; } else printf("vo_vesa: Using VIDIX\n"); vidix_start(); + vidix_opened = 1; } #endif } -- cgit v1.2.3