int startAvidemux(int argc, char *argv[]) { printf("*************************\n"); printf(" Avidemux v"ADM_VERSION); #if defined( ADM_SUBVERSION ) #define MKSTRING(x) x printf(" (%s) .", MKSTRING(ADM_SUBVERSION)); #endif printf("\n*************************\n"); printf(" http://www.avidemux.org\n"); printf(" Code : Mean, JSC, Grant Pedersen\n"); printf(" GFX : Nestor Di, [email protected]\n"); printf(" Design : Jakub Misak\n"); printf(" FreeBSD : Anish Mistry, [email protected]\n"); printf(" Audio : Mihail Zenkov\n"); printf(" Mac OS X : Kuisathaverat, Harry van der Wolf\n"); printf(" Win32 : Grant Pedersen\n\n"); #ifdef __GNUC__ printf("Compiler: GCC %s\n", __VERSION__); #endif printf("Build Target: "); #if defined(_WIN32) printf("Microsoft Windows"); #elif defined(__APPLE__) printf("Apple"); #else printf("Linux"); #endif #if defined(ADM_CPU_X86_32) printf(" (x86)"); #elif defined(ADM_CPU_X86_64) printf(" (x86-64)"); #endif char uiDesc[15]; getUIDescription(uiDesc); printf("\nUser Interface: %s\n", uiDesc); #ifdef _WIN32 char version[250]; if (getWindowsVersion(version)) printf("Operating System: %s\n", version); #endif #if defined(__USE_LARGEFILE) && defined(__USE_LARGEFILE64) printf("\nLarge file available: %d offset\n", __USE_FILE_OFFSET64); #endif printf("Time: %s\n", ADM_epochToString(ADM_getSecondsSinceEpoch())); for(int i = 0; i < argc; i++) { printf("%d: %s\n", i, argv[i]); } #ifndef __APPLE__ ADM_InitMemcpy(); #endif printf("\nInitialising prefs\n"); initPrefs(); if(false==prefs->load()) // no prefs, set some sane default { setPrefsDefault(); } CpuCaps::init(); atexit(onexit); #ifdef _WIN32 win32_netInit(); #endif video_body = new ADM_Composer; UI_Init(argc, argv); AUDMEncoder_initDither(); // Hook our UI... InitFactory(); InitCoreToolkit(); initFileSelector(); // Load .avidemuxrc quotaInit(); ADM_lavFormatInit(); //***************Plugins ********************* // Load system wide audio decoder plugin #ifdef __APPLE__ const char *startDir="../lib"; #else const char *startDir=ADM_RELATIVE_LIB_DIR; #endif char *adPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioDecoder"); char *avPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioDevices"); char *aePlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioEncoders"); char *dmPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "demuxers"); char *mxPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "muxers"); char *vePlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "videoEncoders"); char *vdPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "videoDecoders"); char *vfPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "videoFilters"); char *sePlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "scriptEngines"); //***************Plugins ********************* if(!initGUI(initialiseScriptEngines(sePlugins, video_body,getUISpecifSubfolder()))) { printf("\n Fatal : could not init GUI\n"); exit(-1); } delete [] sePlugins; #if defined( USE_VDPAU) #if (ADM_UI_TYPE_BUILD!=ADM_UI_CLI) printf("Probing for VDPAU...\n"); if(vdpauProbe()==true) printf("VDPAU available\n"); else printf("VDPAU not available\n"); #else printf("Cannot use VDPAU in cli mode %d,%d\n",ADM_UI_TYPE_BUILD,ADM_UI_CLI); #endif #endif #if defined( USE_XVBA) #if (ADM_UI_TYPE_BUILD!=ADM_UI_CLI) printf("Probing for XVBA...\n"); if(xvbaProbe()==true) printf("XVBA available\n"); else printf("XVBA not available\n"); #else printf("Cannot use XVBA in cli mode %d,%d\n",ADM_UI_TYPE_BUILD,ADM_UI_CLI); #endif #endif #if defined( USE_LIBVA) #if (ADM_UI_TYPE_BUILD!=ADM_UI_CLI) printf("Probing for LIBVA...\n"); if(libvaProbe()==true) printf("LIBVA available\n"); else printf("LIBVA not available\n"); #else printf("Cannot use LIBVA in cli mode %d,%d\n",ADM_UI_TYPE_BUILD,ADM_UI_CLI); #endif #endif #ifdef USE_SDL char *drv=NULL; printf("Probing for SDL...\n"); std::string sdlDriver=std::string("dummy"); if(prefs->get(FEATURES_SDLDRIVER,&drv)) { if(drv) { if(strlen(drv)) { sdlDriver=std::string(drv); } ADM_dezalloc(drv); } } printf("Calling initSDL with driver=%s\n",sdlDriver.c_str()); initSdl(sdlDriver); #endif // ADM_mx_loadPlugins(mxPlugins); delete [] mxPlugins; ADM_ad_loadPlugins(adPlugins); delete [] adPlugins; ADM_av_loadPlugins(avPlugins); delete [] avPlugins; ADM_ae_loadPlugins(aePlugins); delete [] aePlugins; ADM_dm_loadPlugins(dmPlugins); delete [] dmPlugins; ADM_ve6_loadPlugins(vePlugins,getUISpecifSubfolder()); delete [] vePlugins; ADM_vf_loadPlugins(vfPlugins,getUISpecifSubfolder()); delete [] vfPlugins; ADM_vd6_loadPlugins(vdPlugins); delete [] vdPlugins; // load local audio decoder plugins adPlugins=ADM_getHomeRelativePath("plugins6","audioDecoder"); ADM_ad_loadPlugins(adPlugins); delete [] adPlugins; // load local video filter plugins vfPlugins=ADM_getHomeRelativePath("plugins6","videoFilter"); ADM_vf_loadPlugins(vfPlugins,getUISpecifSubfolder()); delete [] vfPlugins; ADM_lavInit(); AVDM_audioInit(); UI_RunApp(); cleanUp(); printf("Normal exit\n"); return 0; }
int startAvidemux(int argc, char *argv[]) { printf("*************************\n"); printf(" Avidemux v" VERSION); if(ADM_SUBVERSION) { printf(" (r%04u)", ADM_SUBVERSION); } printf("\n*************************\n"); printf(" http://www.avidemux.org\n"); printf(" Code : Mean, JSC, Grant Pedersen\n"); printf(" GFX : Nestor Di, [email protected]\n"); printf(" Design : Jakub Misak\n"); printf(" FreeBSD : Anish Mistry, [email protected]\n"); printf(" Audio : Mihail Zenkov\n"); printf(" Mac OS X : Kuisathaverat, Harry van der Wolf\n"); printf(" Win32 : Grant Pedersen\n\n"); printf("Compiler: "); #if defined(__GNUC__) printf("GCC %s", __VERSION__); #elif defined(_MSC_VER) printf("Microsoft Visual C++ %d.%d", _MSC_VER / 100, _MSC_VER % 100); #else printf("Unknown"); #endif printf("\nBuild Target: "); #if defined(_WIN32) printf("Microsoft Windows"); #elif defined(__APPLE__) printf("Apple"); #else printf("Linux"); #endif #if defined(ADM_CPU_X86_32) printf(" (x86)"); #elif defined(ADM_CPU_X86_64) printf(" (x86-64)"); #endif char uiDesc[15]; getUIDescription(uiDesc); printf("\nUser Interface: %s\n", uiDesc); #ifdef _WIN32 char version[250]; if (getWindowsVersion(version)) printf("Operating System: %s\n", version); #endif #if defined(__USE_LARGEFILE) && defined(__USE_LARGEFILE64) printf("\nLarge file available: %d offset\n", __USE_FILE_OFFSET64); #endif printf("Time: %s\n", ADM_epochToString(ADM_getSecondsSinceEpoch())); for(int i = 0; i < argc; i++) { printf("%d: %s\n", i, argv[i]); } // Start counting memory ADM_memStatInit(); #ifndef __APPLE__ ADM_InitMemcpy(); #endif printf("\nInitialising prefs\n"); initPrefs(); if(false==prefs->load()) // no prefs, set some sane default { setPrefsDefault(); } CpuCaps::init(); #ifdef USE_SDL uint32_t videoDevice = RENDER_LAST; prefs->get(VIDEODEVICE, &videoDevice); initSdl(videoDevice); #endif atexit(onexit); #ifdef _WIN32 win32_netInit(); #endif IPluginManager *pluginManager = new PluginManager(); pluginManager->loadAll(); UI_SetPluginManager(pluginManager); video_body = new ADM_Composer(pluginManager); UI_Init(argc, argv); AUDMEncoder_initDither(); // Hook our UI... InitFactory(); InitCoreToolkit(); initFileSelector(); // Load .avidemuxrc quotaInit(); ADM_lavFormatInit(); //***************Plugins ********************* // Load system wide audio decoder plugin #ifdef __APPLE__ const char *startDir="../lib"; #else const char *startDir=ADM_RELATIVE_LIB_DIR; #endif char *adPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioDecoder"); char *avPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioDevices"); char *aePlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "audioEncoders"); char *dmPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "demuxers"); char *vdPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "videoDecoders"); char *vfPlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "videoFilters"); char *sePlugins = ADM_getInstallRelativePath(startDir, ADM_PLUGIN_DIR, "scriptEngines"); ADM_ad_loadPlugins(adPlugins); delete [] adPlugins; ADM_av_loadPlugins(avPlugins); delete [] avPlugins; ADM_ae_loadPlugins(aePlugins); delete [] aePlugins; ADM_dm_loadPlugins(dmPlugins); delete [] dmPlugins; ADM_vf_loadPlugins(vfPlugins); delete [] vfPlugins; ADM_vd6_loadPlugins(vdPlugins); delete [] vdPlugins; // load local audio decoder plugins adPlugins=ADM_getHomeRelativePath("plugins6","audioDecoder"); ADM_ad_loadPlugins(adPlugins); delete [] adPlugins; // load local video filter plugins vfPlugins=ADM_getHomeRelativePath("plugins6","videoFilter"); ADM_vf_loadPlugins(vfPlugins); delete [] vfPlugins; //***************Plugins ********************* if(!initGUI(initialiseScriptEngines(sePlugins, video_body, pluginManager), pluginManager)) { printf("\n Fatal : could not init GUI\n"); exit(-1); } delete [] sePlugins; ADM_lavInit(); AVDM_audioInit(); #if defined( USE_VDPAU) #if (ADM_UI_TYPE_BUILD!=ADM_UI_CLI) printf("Probing for VDPAU...\n"); if(vdpauProbe()==true) printf("VDPAU available\n"); else printf("VDPAU not available\n"); #else printf("Cannot use VDPAU in cli mode %d,%d\n",ADM_UI_TYPE_BUILD,ADM_UI_CLI); #endif #endif // Init jobs ADM_jobInit(); UI_RunApp(); cleanUp(); delete pluginManager; printf("Normal exit\n"); return 0; }