diff -Nur mplayer-old/libmpcodecs/dec_audio.c mplayer/libmpcodecs/dec_audio.c --- mplayer-old/libmpcodecs/dec_audio.c 2010-05-27 19:02:33.346258636 +0300 +++ mplayer/libmpcodecs/dec_audio.c 2010-05-27 19:02:41.915422106 +0300 @@ -20,6 +20,7 @@ #include #include #include +#include #include "config.h" #include "mp_msg.h" @@ -143,6 +144,9 @@ static int init_audio(sh_audio_t *sh_audio, char *codecname, char *afm, int status, stringset_t *selected) { + char *locale_data = setlocale(LC_CTYPE, ""); + setlocale(LC_CTYPE, "C"); + unsigned int orig_fourcc = sh_audio->wf ? sh_audio->wf->wFormatTag : 0; int force = 0; if (codecname && codecname[0] == '+') { @@ -231,8 +235,10 @@ continue; // try next... } // Yeah! We got it! + setlocale(LC_CTYPE, locale_data); return 1; } + setlocale(LC_CTYPE, locale_data); return 0; } diff -Nur mplayer-old/libmpcodecs/dec_video.c mplayer/libmpcodecs/dec_video.c --- mplayer-old/libmpcodecs/dec_video.c 2010-05-27 19:02:33.342258404 +0300 +++ mplayer/libmpcodecs/dec_video.c 2010-05-27 19:04:23.349261664 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include "mp_msg.h" #include "help_mp.h" @@ -204,6 +205,10 @@ static int init_video(sh_video_t *sh_video, char *codecname, char *vfm, int status, stringset_t *selected) { + + char *locale_data = setlocale(LC_CTYPE, ""); + setlocale(LC_CTYPE, "C"); + int force = 0; unsigned int orig_fourcc = sh_video->bih ? sh_video->bih->biCompression : 0; @@ -320,8 +325,10 @@ } // Yeah! We got it! sh_video->initialized = 1; + setlocale(LC_CTYPE, locale_data); return 1; } + setlocale(LC_CTYPE, locale_data); return 0; }