Mercurial > mplayer.hg
view libmpcodecs/ve.c @ 13303:2571b2e0c0b4
Fixes for VirtualAlloc function:
* mplayer received a SIGSEGV under Linux after
Opening video decoder: [dmo] DMO video codecs
VirtualAlloc(0x00400000, 859648, 0x00003000, 0x00000040)
because that region was already under use and mmap() with
MAP_FIXED has problems under Linux (see code).
VirtualAlloc() fixed in "loader/ext.c".
* VirtualAlloc() made to conform with win32 documented behavior
regarding the alignment of the address and size arguments.
* VirtualAlloc() detection of overlap with previous regions fixed.
Patch by A. Guru ( a.guru at sympatico dot ca )
author | rtognimp |
---|---|
date | Fri, 10 Sep 2004 16:39:31 +0000 |
parents | d198f255bee9 |
children | d7a2ffc6e694 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "../config.h" #include "../mp_msg.h" #include "img_format.h" #include "mp_image.h" #include "vf.h" extern vf_info_t ve_info_divx4; extern vf_info_t ve_info_lavc; extern vf_info_t ve_info_vfw; extern vf_info_t ve_info_raw; extern vf_info_t ve_info_libdv; extern vf_info_t ve_info_xvid; extern vf_info_t ve_info_qtvideo; extern vf_info_t ve_info_nuv; extern vf_info_t ve_info_x264; static vf_info_t* encoder_list[]={ #ifdef HAVE_DIVX4ENCORE &ve_info_divx4, #endif #ifdef USE_LIBAVCODEC &ve_info_lavc, #endif #ifdef USE_WIN32DLL &ve_info_vfw, &ve_info_qtvideo, #endif #ifdef HAVE_LIBDV095 &ve_info_libdv, #endif &ve_info_raw, #if defined(HAVE_XVID3) || defined(HAVE_XVID4) &ve_info_xvid, #endif &ve_info_nuv, #ifdef HAVE_X264 &ve_info_x264, #endif NULL }; vf_instance_t* vf_open_encoder(vf_instance_t* next, char *name, char *args){ char* vf_args[] = { "_oldargs_", args, NULL }; return vf_open_plugin(encoder_list,next,name,vf_args); }