shithub: openh264

Download patch

ref: b6dcd94cb016ebc3a6d93fe9d42f957b23ec7a28
parent: 57a292b10635f6afd8a5fceedc972c7a531c9066
parent: 35ad8cb3a5ab5c0172e5e30227518ab593421352
author: Ethan Hugg <ethanhugg@gmail.com>
date: Tue Jan 21 05:30:28 EST 2014

Merge pull request #180 from mstorsjo/remove-disabled-bundle-loading

Remove disabled/broken/unused code for bundle loading in the console tools

--- a/build/mktargets.sh
+++ b/build/mktargets.sh
@@ -4,7 +4,7 @@
 (cd codec/common && python ../../build/mktargets.py --directory codec/common --library common)
 (cd codec/processing && python ../../build/mktargets.py --directory codec/processing --library processing --exclude wels_process.cpp --exclude WelsVideoProcessor.cpp)
 
-(cd codec/console/dec && python ../../../build/mktargets.py --directory codec/console/dec --binary h264dec --exclude dec_console.h --exclude load_bundle_functions.cpp)
-(cd codec/console/enc && python ../../../build/mktargets.py --directory codec/console/enc --binary h264enc --exclude enc_console.h --exclude bundlewelsenc.cpp)
+(cd codec/console/dec && python ../../../build/mktargets.py --directory codec/console/dec --binary h264dec)
+(cd codec/console/enc && python ../../../build/mktargets.py --directory codec/console/enc --binary h264enc)
 (cd test && python ../build/mktargets.py --directory test --binary codec_unittest)
 (cd gtest && python ../build/mktargets.py --directory gtest --library gtest --out ../build/gtest-targets.mk --cpp-suffix .cc --include gtest-all.cc)
--- a/codec/console/dec/inc/dec_console.h
+++ /dev/null
@@ -1,56 +1,0 @@
-/*!
- * \copy
- *     Copyright (c)  2011-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.
- *
- *  dec_console.h
- *  h264decConsole
- *
- *  Created on 11-3-15.
- *
- */
-
-#ifndef DEC_CONSOLE_H__
-#define DEC_CONSOLE_H__
-
-#include "code_api.h"
-
-/////////////////////////////////////////////////////////////////////////////////////
-
-
-
-/////////////////////////////////////////////////////////////////////////////////////
-
-bool load_bundle_welsdec();
-void free_bundle_welsdec();
-bool get_functions_address_free_decoder (ISVCDecoder* pDecoder);
-bool get_functions_address_create_decoder (ISVCDecoder** ppDecoder);
-
-
-
-#endif  // DEC_CONSOLE_H__
--- a/codec/console/dec/src/load_bundle_functions.cpp
+++ /dev/null
@@ -1,239 +1,0 @@
-/*!
- * \copy
- *     Copyright (c)  2011-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.
- *
- *
- * \file	load_bundle_functions.cpp
- *
- * \brief	load bundle and function on Mac platform
- *
- * \date	Created on 03/15/2011
- *
- * \description : 1. Load bundle: welsdec.bundle
- *                2. Load address of function
- *                3. Create or destroy decoder
- *
- *************************************************************************************
- */
-
-
-
-
-#include <string.h>
-#include <Carbon/Carbon.h>
-#include <CoreFoundation/CFBundle.h>
-
-#include <dlfcn.h>
-#include <string>
-
-#include "dec_console.h"
-#include "codec_api.h"
-
-typedef long (*LPCreateWelsCSDecoder) (ISVCDecoder** ppDecoder);
-typedef void (*LPDestroyWelsCSDecoder) (ISVCDecoder* pDecoder);
-
-
-typedef long (*LPCreateVHDController)();
-typedef void (*LPDestroyVHDController)();
-
-CFBundleRef g_at264Module = nil;
-
-const char H264DecoderDLL[] = "welsdec.bundle";
-
-CFBundleRef g_at264ModuleHWD = nil;
-
-
-////////////////////////////////////////////////////////////////////////////////////////
-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);
-
-#if defined(__apple__)
-  // whether is self a framework ?
-  int locateNumber = 1;
-  struct FSRef currentPath;
-  OSStatus iStatus = FSPathMakeRef ((unsigned char*)cCurrentPath, &currentPath, NULL);
-  if (noErr == iStatus) {
-    LSItemInfoRecord  info;
-    iStatus = LSCopyItemInfoForRef (&currentPath, kLSRequestExtension, &info);
-    if (noErr == iStatus && NULL == info.extension) {
-      locateNumber = 4;
-    }
-  }
-#else
-  int locateNumber = 1;
-#endif
-
-  std::string strPath (cCurrentPath);
-  int 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;
-  }
-
-  CFStringRef bundlePath = CFStringCreateWithCString (kCFAllocatorSystemDefault, lpBundlePath,
-                           CFStringGetSystemEncoding());
-  if (NULL == bundlePath) {
-    return NULL;
-  }
-
-  CFURLRef bundleURL = CFURLCreateWithString (kCFAllocatorSystemDefault, bundlePath, NULL);
-  if (NULL == bundleURL) {
-    return NULL;
-  }
-#endif
-
-  // 2.get bundle ref
-  CFBundleRef bundleRef = CFBundleCreate (kCFAllocatorSystemDefault, bundleURL);
-  CFRelease (bundleURL);
-
-  if (NULL != bundleRef) {
-  }
-
-  return bundleRef;
-}
-
-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;
-}
-
-
-////////////////////////
-
-bool load_bundle_welsdec() {
-
-  char achPath[512] = {0};
-
-  GetCurrentModulePath (achPath, 512);
-  strlcat (achPath, H264DecoderDLL, 512);
-
-  g_at264Module = LoadBundle (achPath);
-
-  if (g_at264Module == NULL)
-    return false;
-
-  return true;
-
-}
-
-void free_bundle_welsdec() {
-  if (g_at264Module != NULL) {
-    CFBundleUnloadExecutable (g_at264Module);
-  }
-}
-
-bool get_functions_address_create_decoder (ISVCDecoder** ppDecoder) {
-  if (!g_at264Module)
-    return false;
-
-  LPCreateWelsCSDecoder pfuncCreateSWDec =
-    (LPCreateWelsCSDecoder)GetProcessAddress (g_at264Module, "CreateSVCDecoder");
-
-  LPCreateVHDController pfuncCreateHWDec =
-    (LPCreateVHDController)GetProcessAddress (g_at264Module, "CreateSVCVHDController");
-
-
-  if (pfuncCreateSWDec != NULL) {
-    pfuncCreateSWDec (ppDecoder);
-  } else {
-    return false;
-  }
-
-  if (pfuncCreateHWDec != NULL) {
-    pfuncCreateHWDec();
-  } else {
-    return false;
-  }
-
-  return true;
-
-}
-
-bool get_functions_address_free_decoder (ISVCDecoder* pDecoder) {
-  if (!g_at264Module)
-    return false;
-
-  LPDestroyWelsCSDecoder pfuncDestroySWDec =
-    (LPDestroyWelsCSDecoder)GetProcessAddress (g_at264Module, "DestroySVCDecoder");
-
-  LPDestroyVHDController pfuncDestroyHWDec =
-    (LPDestroyVHDController)GetProcessAddress (g_at264Module, "DestroySVCVHDController");
-
-  if (pfuncDestroySWDec != NULL) {
-    pfuncDestroySWDec (pDecoder);
-  } else {
-    return false;
-  }
-
-  if (pfuncDestroyHWDec != NULL) {
-    pfuncDestroyHWDec();
-  } else {
-    return false;
-  }
-
-  return true;
-}
-
-
--- a/codec/console/enc/src/bundlewelsenc.cpp
+++ /dev/null
@@ -1,137 +1,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.
- *
- */
-#include <string.h>
-#include <Carbon/Carbon.h>
-#include <CoreFoundation/CFBundle.h>
-
-#include <dlfcn.h>
-#include <string>
-
-#include "bundleloader.h"
-#include "codec_api.h"
-
-typedef long (*LPCreateWelsCSEncoder) (ISVCEncoder** ppEncoder);
-typedef void (*LPDestroyWelsCSEncoder) (ISVCEncoder* pEncoder);
-
-CFBundleRef g_at264Module = nil;
-
-const char H264EncoderDLL[] = "welsenc.bundle";
-
-int WelsEncGetCurrentModulePath (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);
-
-  int locateNumber = 1;
-
-  std::string strPath (cCurrentPath);
-  int 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;
-
-}
-
-int32_t WelsEncBundleLoad() {
-
-  char achPath[512] = {0};
-
-  WelsEncGetCurrentModulePath (achPath, 512);
-  strlcat (achPath, H264EncoderDLL, 512);
-
-  g_at264Module = LoadBundle (achPath);
-
-  if (g_at264Module == NULL)
-    return 1;
-  else
-    return 0;
-}
-
-void WelsEncBundleFree() {
-  if (g_at264Module != NULL) {
-    CFBundleUnloadExecutable (g_at264Module);
-  }
-}
-
-int32_t WelsEncBundleCreateEncoder (ISVCEncoder** ppEncoder) {
-  if (!g_at264Module)
-    return 1;
-
-  LPCreateWelsCSEncoder pfuncCreateCSEnc =
-    (LPCreateWelsCSEncoder)GetProcessAddress (g_at264Module, "CreateSVCEncoder");
-
-  if (pfuncCreateCSEnc != NULL) {
-    return (pfuncCreateCSEnc (ppEncoder));
-  }
-
-  return 1;
-}
-
-int32_t WelsEncBundleDestroyEncoder (ISVCEncoder* pEncoder) {
-  if (!g_at264Module)
-    return 1;
-
-  LPDestroyWelsCSEncoder pfuncDestroyCSEnc =
-    (LPDestroyWelsCSEncoder)GetProcessAddress (g_at264Module, "DestroySVCEncoder");
-
-  if (pfuncDestroyCSEnc != NULL) {
-    pfuncDestroyCSEnc (pEncoder);
-    return 0;
-  } else
-    return 1;
-}
-
-
--- a/codec/console/enc/src/welsenc.cpp
+++ b/codec/console/enc/src/welsenc.cpp
@@ -50,11 +50,7 @@
 //#include "layered_pic_buffer.h"
 #include "read_config.h"
 
-#if defined(MACOS)
-#include "bundlewelsenc.h"
-#else
 #include "typedefs.h"
-#endif//MACOS
 
 #ifdef _MSC_VER
 #include <io.h>     /* _setmode() */
@@ -1242,22 +1238,13 @@
 
 long CreateSVCEncHandle (ISVCEncoder** ppEncoder) {
   long ret = 0;
-#if defined(MACOS)
-  ret = WelsEncBundleLoad();
-  WelsEncBundleCreateEncoder (ppEncoder);
-#else
   ret = CreateSVCEncoder (ppEncoder);
-#endif//MACOS
   return ret;
 }
 
 void DestroySVCEncHandle (ISVCEncoder* pEncoder) {
   if (pEncoder) {
-#if defined(MACOS)
-    WelsEncBundleDestroyEncoder (pEncoder);
-#else
     DestroySVCEncoder (pEncoder);
-#endif//MACOS
 
   }
 }
@@ -1265,11 +1252,7 @@
 /****************************************************************************
  * main:
  ****************************************************************************/
-#if (defined(MACOS))
-int main_demo (int argc, char** argv)
-#else
 int main (int argc, char** argv)
-#endif
 {
   ISVCEncoder* pSVCEncoder	= NULL;
   FILE* pFileOut					= NULL;