diff --git a/Makefile b/Makefile index a30cd353..6d3e79a6 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ endif include build/platform-$(OS).mk -CFLAGS += -DNO_DYNAMIC_VP +CFLAGS += LDFLAGS += ifeq (Yes, $(GCOV)) diff --git a/codec/build/iOS/enc/welsenc/welsenc.xcodeproj/project.pbxproj b/codec/build/iOS/enc/welsenc/welsenc.xcodeproj/project.pbxproj index 6d07c367..10bf8d2e 100644 --- a/codec/build/iOS/enc/welsenc/welsenc.xcodeproj/project.pbxproj +++ b/codec/build/iOS/enc/welsenc/welsenc.xcodeproj/project.pbxproj @@ -93,7 +93,6 @@ 4CE446AA18BC605C0017DF25 /* as264_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = as264_common.h; sourceTree = ""; }; 4CE446AB18BC605C0017DF25 /* au_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = au_set.h; sourceTree = ""; }; 4CE446AC18BC605C0017DF25 /* bit_stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit_stream.h; sourceTree = ""; }; - 4CE446AD18BC605C0017DF25 /* bundleloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bundleloader.h; sourceTree = ""; }; 4CE446AE18BC605C0017DF25 /* deblocking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deblocking.h; sourceTree = ""; }; 4CE446AF18BC605C0017DF25 /* decode_mb_aux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decode_mb_aux.h; sourceTree = ""; }; 4CE446B018BC605C0017DF25 /* dq_map.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dq_map.h; sourceTree = ""; }; @@ -286,7 +285,6 @@ 4CE446AA18BC605C0017DF25 /* as264_common.h */, 4CE446AB18BC605C0017DF25 /* au_set.h */, 4CE446AC18BC605C0017DF25 /* bit_stream.h */, - 4CE446AD18BC605C0017DF25 /* bundleloader.h */, 4CE446AE18BC605C0017DF25 /* deblocking.h */, 4CE446AF18BC605C0017DF25 /* decode_mb_aux.h */, 4CE446B018BC605C0017DF25 /* dq_map.h */, @@ -636,12 +634,10 @@ GCC_PREPROCESSOR_DEFINITIONS = ""; "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( APPLE_IOS, - NO_DYNAMIC_VP, HAVE_NEON, ); "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( APPLE_IOS, - NO_DYNAMIC_VP, ); HEADER_SEARCH_PATHS = ( "$(SRCROOT)/../../../../common/inc", @@ -670,12 +666,10 @@ GCC_PREPROCESSOR_DEFINITIONS = ""; "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]" = ( APPLE_IOS, - NO_DYNAMIC_VP, HAVE_NEON, ); "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = ( APPLE_IOS, - NO_DYNAMIC_VP, ); HEADER_SEARCH_PATHS = ( "$(SRCROOT)/../../../../common/inc", diff --git a/codec/build/win32/enc/WelsEncCore.vcproj b/codec/build/win32/enc/WelsEncCore.vcproj index b1461ec0..ddf8dcc6 100644 --- a/codec/build/win32/enc/WelsEncCore.vcproj +++ b/codec/build/win32/enc/WelsEncCore.vcproj @@ -53,7 +53,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;X86_ASM;NO_DYNAMIC_VP" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;X86_ASM" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -133,7 +133,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface" - PreprocessorDefinitions="WIN64;_DEBUG;_LIB;X86_ASM;NO_DYNAMIC_VP" + PreprocessorDefinitions="WIN64;_DEBUG;_LIB;X86_ASM" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -215,7 +215,7 @@ FavorSizeOrSpeed="1" WholeProgramOptimization="true" AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface" - PreprocessorDefinitions="WIN32;NDEBUG;_LIB;X86_ASM;NO_DYNAMIC_VP" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;X86_ASM" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" @@ -299,7 +299,7 @@ FavorSizeOrSpeed="1" WholeProgramOptimization="true" AdditionalIncludeDirectories="..\..\..\common\inc;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface" - PreprocessorDefinitions="WIN64;NDEBUG;_LIB;X86_ASM;NO_DYNAMIC_VP" + PreprocessorDefinitions="WIN64;NDEBUG;_LIB;X86_ASM" StringPooling="true" RuntimeLibrary="2" EnableFunctionLevelLinking="true" diff --git a/codec/encoder/core/inc/bundleloader.h b/codec/encoder/core/inc/bundleloader.h deleted file mode 100644 index 057f8342..00000000 --- a/codec/encoder/core/inc/bundleloader.h +++ /dev/null @@ -1,137 +0,0 @@ -/*! - * \copy - * Copyright (c) 2013, Cisco Systems - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - */ - -#ifndef WELS_BOUNDLELOAD_H -#define WELS_BOUNDLELOAD_H - -#if defined(MACOS) - -#include -#include -#include -#include - -int GetCurrentModulePath (char* lpModulePath, const int iPathMax) { -if (lpModulePath == NULL || iPathMax <= 0) { - return -1; -} - -memset (lpModulePath, 0, iPathMax); - -char cCurrentPath[PATH_MAX]; -memset (cCurrentPath, 0, PATH_MAX); - -Dl_info dlInfo; -static int sDummy; -dladdr ((void*)&sDummy, &dlInfo); - -strlcpy (cCurrentPath, dlInfo.dli_fname, PATH_MAX); - -// whether is self a framework ? -int locateNumber = 1; -struct FSRef currentPath; -OSStatus iStatus = FSPathMakeRef ((unsigned char*)cCurrentPath, ¤tPath, NULL); -if (noErr == iStatus) { - LSItemInfoRecord info; - iStatus = LSCopyItemInfoForRef (¤tPath, kLSRequestExtension, &info); - if (noErr == iStatus && NULL == info.extension) { - locateNumber = 4; - } -} -std::string strPath (cCurrentPath); -std::string::size_type pos = std::string::npos; -for (int i = 0; i < locateNumber; i++) { - pos = strPath.rfind ('/'); - if (std::string::npos == pos) { - break; - } - strPath.erase (pos); -} -if (std::string::npos == pos) { - return -2; -} -cCurrentPath[pos] = 0; - -strlcpy (lpModulePath, cCurrentPath, iPathMax); -strlcat (lpModulePath, "/", iPathMax); - -return 0; -} - -CFBundleRef LoadBundle (const char* lpBundlePath) { - if (lpBundlePath == NULL) { - return NULL; - } - - struct FSRef bundlePath; - OSStatus iStatus = FSPathMakeRef ((unsigned char*)lpBundlePath, &bundlePath, NULL); - if (noErr != iStatus) { - return NULL; - } - - CFURLRef bundleURL = CFURLCreateFromFSRef (kCFAllocatorSystemDefault, &bundlePath); - if (NULL == bundleURL) { - return NULL; - } - - // 2.get bundle ref - CFBundleRef bundleRef = CFBundleCreate (kCFAllocatorSystemDefault, bundleURL); - CFRelease (bundleURL); - - // Boolean bReturn = FALSE; - if (NULL != bundleRef) { - // bReturn = CFBundleLoadExecutable(bundleRef); - } - - return bundleRef; -} - -Boolean FreeBundle (CFBundleRef bundleRef) { - if (NULL != bundleRef) { - // CFBundleUnloadExecutable(bundleRef); - CFRelease (bundleRef); - } - return TRUE; -} - -void* GetProcessAddress (CFBundleRef bundleRef, const char* lpProcName) { - void* processAddress = NULL; - if (NULL != bundleRef) { - CFStringRef cfProcName = CFStringCreateWithCString (kCFAllocatorSystemDefault, lpProcName, CFStringGetSystemEncoding()); - processAddress = CFBundleGetFunctionPointerForName (bundleRef, cfProcName); - CFRelease (cfProcName); - } - return processAddress; -} -#endif - -#endif diff --git a/codec/encoder/core/inc/wels_preprocess.h b/codec/encoder/core/inc/wels_preprocess.h index d2049693..1bcd5072 100644 --- a/codec/encoder/core/inc/wels_preprocess.h +++ b/codec/encoder/core/inc/wels_preprocess.h @@ -126,7 +126,6 @@ class CWelsLib { void* QueryFunction (const char* pName); private: - void* m_pVpLib; void* m_pInterface[2]; }; diff --git a/codec/encoder/core/src/wels_preprocess.cpp b/codec/encoder/core/src/wels_preprocess.cpp index cc4b23e9..c247e762 100644 --- a/codec/encoder/core/src/wels_preprocess.cpp +++ b/codec/encoder/core/src/wels_preprocess.cpp @@ -30,16 +30,6 @@ * */ -#ifndef NO_DYNAMIC_VP -#if defined(_WIN32) -#include -#elif defined(MACOS) -#include "bundleloader.h" -#elif defined(__GNUC__) -#include -#endif -#endif - #include "wels_preprocess.h" #include "picture_handle.h" #include "encoder_context.h" @@ -79,106 +69,31 @@ inline void WelsUpdateSpatialIdxMap (sWelsEncCtx* pEncCtx, int32_t iPos, SPic //***************************************************************************************************// CWelsLib::CWelsLib (sWelsEncCtx* pEncCtx) { m_pInterface[0] = m_pInterface[1] = NULL; - -#ifndef NO_DYNAMIC_VP -#if defined(_WIN32) - const char WelsVPLib[] = "welsvp.dll"; - HMODULE shModule = LoadLibrary (WelsVPLib); - if (!shModule) - WelsLog (pEncCtx, WELS_LOG_ERROR, "welsvp load lib dynamic failed module=%x\n", shModule); - -#elif defined(MACOS) - const char WelsVPLib[] = "welsvp.bundle"; - char pCurPath[256]; - GetCurrentModulePath (pCurPath, 256); - strlcat (pCurPath, WelsVPLib, 256); - CFBundleRef shModule = LoadBundle (pCurPath); - if (!shModule) - WelsLog (pEncCtx, WELS_LOG_ERROR, "welsvp load lib dynamic failed module=%x\n", shModule); - -#elif defined(__GNUC__) - const char WelsVPLib[] = "./libwelsvp.so"; - void* shModule = NULL; - shModule = dlopen (WelsVPLib, RTLD_LAZY); - if (shModule == NULL) - printf ("dlopen %s iRet=%p, err=%s\n", WelsVPLib, shModule, dlerror()); -#endif - - m_pVpLib = (void*)shModule; -#endif } CWelsLib::~CWelsLib() { -#ifndef NO_DYNAMIC_VP - if (m_pVpLib) { -#if defined(_WIN32) - HMODULE shModule = (HMODULE)m_pVpLib; - FreeLibrary (shModule); - -#elif defined(MACOS) - CFBundleRef shModule = (CFBundleRef)m_pVpLib; - FreeBundle (shModule); - -#elif defined(__GNUC__) - void* shModule = m_pVpLib; - dlclose (shModule); -#endif - m_pVpLib = NULL; - } -#endif } void* CWelsLib::QueryFunction (const char* pName) { void* pFunc = NULL; -#ifndef NO_DYNAMIC_VP - if (m_pVpLib) { -#if defined(_WIN32) - HMODULE shModule = (HMODULE)m_pVpLib; - pFunc = (void*)GetProcAddress (shModule, pName); - -#elif defined(MACOS) - CFBundleRef shModule = (CFBundleRef)m_pVpLib; - pFunc = (void*)GetProcessAddress (shModule, pName); - -#elif defined(__GNUC__) - void* shModule = m_pVpLib; - pFunc = (void*)dlsym (shModule, pName); - if (pFunc == NULL) - printf ("dlsym %p iRet=%p, err=%s\n", shModule, pFunc, dlerror()); -#endif - } -#endif return pFunc; } int32_t CWelsLib::CreateIface (IWelsVP** ppInterfaceVp) { *ppInterfaceVp = NULL; -#ifndef NO_DYNAMIC_VP - if (m_pVpLib) { - -#endif pfnCreateVpInterface pCreateVpInterface = NULL; pfnDestroyVpInterface pDestroyVpInterface = NULL; -#ifndef NO_DYNAMIC_VP - pCreateVpInterface = (pfnCreateVpInterface) QueryFunction ("CreateVpInterface"); - pDestroyVpInterface = (pfnDestroyVpInterface) QueryFunction ("DestroyVpInterface"); -#else pCreateVpInterface = CreateVpInterface; // TODO(ekr@rtfm.com): This cast corrects a signature difference... This is a potential real problem pDestroyVpInterface = (pfnDestroyVpInterface)DestroyVpInterface; -#endif m_pInterface[0] = (void*)pCreateVpInterface; m_pInterface[1] = (void*)pDestroyVpInterface; if (m_pInterface[0] && m_pInterface[1]) pCreateVpInterface ((void**)ppInterfaceVp, WELSVP_INTERFACE_VERION); -#ifndef NO_DYNAMIC_VP - } else { - } -#endif return (*ppInterfaceVp) ? 0 : 1; }