diff mplayer.c @ 32383:f6e78eef2e1b

Avoid duplicating common init code between MPlayer and mencoder.
author reimar
date Sat, 09 Oct 2010 15:04:50 +0000
parents 9a5340bb1f69
children d1f6c6cf8905
line wrap: on
line diff
--- a/mplayer.c	Sat Oct 09 14:17:06 2010 +0000
+++ b/mplayer.c	Sat Oct 09 15:04:50 2010 +0000
@@ -114,7 +114,6 @@
 #include "mpcommon.h"
 #include "mplayer.h"
 #include "osdep/getch2.h"
-#include "osdep/priority.h"
 #include "osdep/timer.h"
 #include "parser-cfg.h"
 #include "parser-mpcmd.h"
@@ -2734,8 +2733,6 @@
 int main(int argc,char* argv[]){
 
 
-char * mem_ptr;
-
 // movie info:
 
 /* Flag indicating whether MPlayer should exit without playing anything. */
@@ -2744,10 +2741,7 @@
 
 int gui_no_filename=0;
 
-  InitTimer();
-  srand(GetTimerMS());
-
-  mp_msg_init();
+  common_preinit();
 
   // Create the config context and register the options
   mconfig = m_config_new();
@@ -2758,10 +2752,6 @@
   // Preparse the command line
   m_config_preparse_command_line(mconfig,argc,argv);
 
-#if (defined(__MINGW32__) || defined(__CYGWIN__)) && defined(CONFIG_WIN32DLL)
-  set_path_env();
-#endif
-
 #ifdef CONFIG_TV
   stream_tv_defaults.immediate = 1;
 #endif
@@ -2805,46 +2795,8 @@
     }
 
   print_version("MPlayer");
-
-#if defined(__MINGW32__) || defined(__CYGWIN__)
-#ifdef CONFIG_GUI
-    void *runningmplayer = FindWindow("MPlayer GUI for Windows", "MPlayer for Windows");
-    if(runningmplayer && filename && use_gui){
-        COPYDATASTRUCT csData;
-        char file[MAX_PATH];
-        char *filepart = filename;
-        if(GetFullPathName(filename, MAX_PATH, file, &filepart)){
-            csData.dwData = 0;
-            csData.cbData = strlen(file)*2;
-            csData.lpData = file;
-            SendMessage(runningmplayer, WM_COPYDATA, (WPARAM)runningmplayer, (LPARAM)&csData);
-        }
-    }
-#endif
-
-	{
-		HMODULE kernel32 = GetModuleHandle("Kernel32.dll");
-		BOOL WINAPI (*setDEP)(DWORD) = NULL;
-		BOOL WINAPI (*setDllDir)(LPCTSTR) = NULL;
-		if (kernel32) {
-			setDEP = GetProcAddress(kernel32, "SetProcessDEPPolicy");
-			setDllDir = GetProcAddress(kernel32, "SetDllDirectoryA");
-		}
-		if (setDEP) setDEP(3);
-		if (setDllDir) setDllDir("");
-	}
-	// stop Windows from showing all kinds of annoying error dialogs
-	SetErrorMode(0x8003);
-	// request 1ms timer resolution
-	timeBeginPeriod(1);
-#endif
-
-#ifdef CONFIG_PRIORITY
-    set_priority();
-#endif
-
-  if (codec_path)
-    set_codec_path(codec_path);
+    if (!common_init())
+        exit_player_with_rc(EXIT_NONE, 0);
 
 #ifndef CONFIG_GUI
     if(use_gui){
@@ -2885,19 +2837,6 @@
       opt_exit = 1;
     }
 
-/* Check codecs.conf. */
-if(!codecs_file || !parse_codec_cfg(codecs_file)){
-  if(!parse_codec_cfg(mem_ptr=get_path("codecs.conf"))){
-    if(!parse_codec_cfg(MPLAYER_CONFDIR "/codecs.conf")){
-      if(!parse_codec_cfg(NULL)){
-        exit_player_with_rc(EXIT_NONE, 0);
-      }
-      mp_msg(MSGT_CPLAYER,MSGL_V,MSGTR_BuiltinCodecsConf);
-    }
-  }
-  free( mem_ptr ); // release the buffer created by get_path()
-}
-
     if(audio_codec_list && strcmp(audio_codec_list[0],"help")==0){
       mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableAudioCodecs);
       mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_CODECS\n");
@@ -2974,41 +2913,6 @@
 
 //------ load global data first ------
 
-// check font
-#ifdef CONFIG_FREETYPE
-  init_freetype();
-#endif
-#ifdef CONFIG_FONTCONFIG
-  if(font_fontconfig <= 0)
-  {
-#endif
-#ifdef CONFIG_BITMAP_FONT
-  if(font_name){
-       vo_font=read_font_desc(font_name,font_factor,verbose>1);
-       if(!vo_font) mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadFont,
-		filename_recode(font_name));
-  } else {
-      // try default:
-       vo_font=read_font_desc( mem_ptr=get_path("font/font.desc"),font_factor,verbose>1);
-       free(mem_ptr); // release the buffer created by get_path()
-       if(!vo_font)
-       vo_font=read_font_desc(MPLAYER_DATADIR "/font/font.desc",font_factor,verbose>1);
-  }
-  if (sub_font_name)
-    sub_font = read_font_desc(sub_font_name, font_factor, verbose>1);
-  else
-    sub_font = vo_font;
-#endif
-#ifdef CONFIG_FONTCONFIG
-  }
-#endif
-
-  vo_init_osd();
-
-#ifdef CONFIG_ASS
-  ass_library = ass_init();
-#endif
-
 #ifdef HAVE_RTC
   if(!nortc)
   {