[MPlayer-dev-eng] [PATCH] mencoder to load win32 codecs properly

Zuxy zuxy.meng at gmail.com
Sun Oct 2 12:55:33 CEST 2005


Hi,

Under Win32 mencoder doesn't add codecs directory to %PATH% as mplayer does, 
so when you want to use win32 codecs to decode source file it complaints about 
unavailable codecs. The fix is straight foward: just copy relative pieces from 
mplayer.c.

--- MPlayer-1.0pre7try2\mencoder.c      Wed Apr  6 15:58:30 2005
+++ MPlayer-1.0pre7try2.new\mencoder.c  Fri Sep 30 02:47:48 2005
@@ -452,6 +452,40 @@
 #endif
 #endif

+
+#if defined(WIN32) && defined(USE_WIN32DLL)
+{  /*make our codec dirs available for LoadLibraryA()*/
+  char tmppath[MAX_PATH*2 + 1];
+  char win32path[MAX_PATH];
+  char realpath[MAX_PATH];
+#ifdef __CYGWIN__
+  cygwin_conv_to_full_win32_path(WIN32_PATH,win32path);
+  strcpy(tmppath,win32path);
+#ifdef USE_REALCODECS
+  cygwin_conv_to_full_win32_path(REALCODEC_PATH,realpath);
+  sprintf(tmppath,"%s;%s",win32path,realpath);
+#endif /*USE_REALCODECS*/
+#else
+  if(!strstr(WIN32_PATH,":")){
+    GetModuleFileNameA(NULL, win32path, MAX_PATH);
+    strcpy(win32path + strlen(win32path) - strlen("mencoder.exe"), 
WIN32_PATH);
+  }
+  else strcpy(win32path,WIN32_PATH);
+  strcpy(tmppath,win32path);
+#ifdef USE_REALCODECS
+  if(!strstr(REALCODEC_PATH,":")){
+    GetModuleFileNameA(NULL, realpath, MAX_PATH);
+    strcpy(realpath + strlen(realpath) - strlen("mencoder.exe"), 
REALCODEC_PATH);
+  }
+  else strcpy(realpath,REALCODEC_PATH);
+  sprintf(tmppath,"%s;%s",win32path,realpath);
+#endif /*USE_REALCODECS*/
+#endif /*__CYGWIN__*/
+  SetEnvironmentVariableA("PATH", tmppath);
+}
+#endif /*WIN32 && USE_WIN32DLL*/
+
+
+
   InitTimer();

 // check codec.conf




More information about the MPlayer-dev-eng mailing list