diff options
author | attila <attila@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-05-23 20:18:06 +0000 |
---|---|---|
committer | attila <attila@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-05-23 20:18:06 +0000 |
commit | abd22b8f480a261536151b89d03b2730b7056c8e (patch) | |
tree | 469b067673282b385aad57aba1193bd3cc208498 | |
parent | b2189d29d959d80c1de614277036ea9fb2bf3445 (diff) |
make use of the new MGA_VID_VERSION ioctl to check
whether the installed driver has the version
we expect it to have.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26863 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | help/help_mp-en.h | 1 | ||||
-rw-r--r-- | libvo/mga_common.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/help/help_mp-en.h b/help/help_mp-en.h index ad7536e6b4..24ec367d9e 100644 --- a/help/help_mp-en.h +++ b/help/help_mp-en.h @@ -1712,6 +1712,7 @@ static char help_text[]= #define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] Your mga_vid driver version is incompatible with this MPlayer version!\n" #define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] Couldn't open: %s\n" #define MGSTR_LIBVO_MGA_ResolutionTooHigh "[MGA] Source resolution is in at least one dimension larger than 1023x1023. Please rescale in software or use -lavdopts lowres=1\n" +#define MGSTR_LIBVO_MGA_mgavidVersionMissmatch "[MGA] The version of the mga_vid driver (%u) does not match the version with which MPlayer was compiled with (%u)\n" // libvo/vesa_lvo.c diff --git a/libvo/mga_common.c b/libvo/mga_common.c index d286f36005..48b3bb91c0 100644 --- a/libvo/mga_common.c +++ b/libvo/mga_common.c @@ -449,6 +449,7 @@ static int mga_uninit(){ static int preinit(const char *vo_subdevice) { + uint32_t ver; const char *devname=vo_subdevice?vo_subdevice:"/dev/mga_vid"; sws_rgb2rgb_init(get_sws_cpuflags()); @@ -459,6 +460,16 @@ static int preinit(const char *vo_subdevice) mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_MGA_CouldntOpen,devname); return -1; } + + // check whether the mga_vid driver has the same + // version as we expect + + ioctl(f,MGA_VID_GET_VERSION,&ver); + if(MGA_VID_VERSION != ver) + { + mp_msg(MSGT_VO, MSGL_ERR, MGSTR_LIBVO_MGA_mgavidVersionMissmatch, ver, MGA_VID_VERSION); + return -1; + } #ifdef VO_XMGA if (!vo_init()) { |