1
mirror of https://github.com/mpv-player/mpv synced 2024-11-07 01:47:00 +01:00

- if DGA fails to report some valid modes, vo_dga now exits gracefully

instead of crashing ... (100000x100000 bug ...)


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1155 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
acki2 2001-06-17 22:21:47 +00:00
parent b24a07ed9c
commit e330ce9bcc

View File

@ -23,6 +23,10 @@
* - works only on x86 architectures * - works only on x86 architectures
* *
* $Log$ * $Log$
* Revision 1.25 2001/06/17 22:21:47 acki2
* - if DGA fails to report some valid modes, vo_dga now exits gracefully
* instead of crashing ... (100000x100000 bug ...)
*
* Revision 1.24 2001/06/17 20:59:39 acki2 * Revision 1.24 2001/06/17 20:59:39 acki2
* - doublebuffering now can be switched on and off with the -(no)double switch. * - doublebuffering now can be switched on and off with the -(no)double switch.
* Default in libvo is disabled. * Default in libvo is disabled.
@ -155,6 +159,8 @@ static vo_info_t vo_info =
//#define BITSPP (vo_dga_modes[vo_dga_active_mode].vdm_bitspp) //#define BITSPP (vo_dga_modes[vo_dga_active_mode].vdm_bitspp)
//#define BYTESPP (vo_dga_modes[vo_dga_active_mode].vdm_bytespp) //#define BYTESPP (vo_dga_modes[vo_dga_active_mode].vdm_bytespp)
#define VO_DGA_INVALID_RES 100000
#define HW_MODE (vo_dga_modes[vo_dga_hw_mode]) #define HW_MODE (vo_dga_modes[vo_dga_hw_mode])
#define SRC_MODE (vo_dga_modes[vo_dga_src_mode]) #define SRC_MODE (vo_dga_modes[vo_dga_src_mode])
@ -766,7 +772,7 @@ static uint32_t init( uint32_t width, uint32_t height,
#ifdef HAVE_DGA2 #ifdef HAVE_DGA2
// needed to change DGA video mode // needed to change DGA video mode
int modecount, mX=100000, mY=100000 , mVBI=100000, mMaxY=0, i,j=0; int modecount, mX=VO_DGA_INVALID_RES, mY=VO_DGA_INVALID_RES , mVBI=100000, mMaxY=0, i,j=0;
int dga_modenum; int dga_modenum;
XDGAMode *modelines=NULL; XDGAMode *modelines=NULL;
XDGADevice *dgadevice; XDGADevice *dgadevice;
@ -776,7 +782,7 @@ static uint32_t init( uint32_t width, uint32_t height,
unsigned int vm_event, vm_error; unsigned int vm_event, vm_error;
unsigned int vm_ver, vm_rev; unsigned int vm_ver, vm_rev;
int i, j=0, have_vm=0; int i, j=0, have_vm=0;
int modecount, mX=100000, mY=100000, mVBI=100000, mMaxY=0, dga_modenum; int modecount, mX=VO_DGA_INVALID_RES, mY=VO_DGA_INVALID_RES, mVBI=100000, mMaxY=0, dga_modenum;
#endif #endif
int bank, ram; int bank, ram;
#endif #endif
@ -951,6 +957,20 @@ static uint32_t init( uint32_t width, uint32_t height,
vo_dga_vidmodes = NULL; vo_dga_vidmodes = NULL;
} }
#endif #endif
#endif
return 1;
}
if(vo_dga_vp_width == VO_DGA_INVALID_RES){
vd_printf( VD_ERR, "vo_dga: Something is wrong with your DGA. There doesn't seem to be a\n"
"single suitable mode!\n");
#ifndef HAVE_DGA2
#ifdef HAVE_XF86VM
if(vo_dga_vidmodes){
XFree(vo_dga_vidmodes);
vo_dga_vidmodes = NULL;
}
#endif
#endif #endif
return 1; return 1;
} }