shithub: openh264

Download patch

ref: 7acb6cd4d0a954dd2de7d2940bf8785c3252f637
parent: 3e4e74a4d88ec4e9b7956ae0850a4fba9220281a
author: Martin Storsjö <[email protected]>
date: Wed Feb 19 09:27:54 EST 2014

Remove the duplicated IWelsVP.h file

Instead have the encoder include it directly from the processing
library.

Both copies of the files were mostly identical so far.

--- a/Makefile
+++ b/Makefile
@@ -81,7 +81,8 @@
 
 ENCODER_INCLUDES = \
     -Icodec/encoder/core/inc \
-    -Icodec/encoder/plus/inc
+    -Icodec/encoder/plus/inc \
+    -Icodec/processing/interface
 
 PROCESSING_INCLUDES = \
     -Icodec/processing/interface \
--- a/codec/build/win32/enc/WelsEncCore.vcproj
+++ b/codec/build/win32/enc/WelsEncCore.vcproj
@@ -52,7 +52,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;"
+				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;X86_ASM;MT_ENABLED"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -132,7 +132,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;"
+				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;_DEBUG;_LIB;X86_ASM;MT_ENABLED"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -214,7 +214,7 @@
 				InlineFunctionExpansion="2"
 				FavorSizeOrSpeed="1"
 				WholeProgramOptimization="true"
-				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc"
+				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;X86_ASM;MT_ENABLED;"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -298,7 +298,7 @@
 				InlineFunctionExpansion="2"
 				FavorSizeOrSpeed="1"
 				WholeProgramOptimization="true"
-				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc"
+				AdditionalIncludeDirectories="..\..\..\common;..\..\..\encoder\core\inc,..\..\..\api\svc;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;NDEBUG;_LIB;MT_ENABLED;X86_ASM"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -2234,7 +2234,7 @@
 			Name="PreProcess"
 			>
 			<File
-				RelativePath="..\..\..\encoder\core\inc\IWelsVP.h"
+				RelativePath="..\..\..\processing\interface\IWelsVP.h"
 				>
 			</File>
 			<File
--- a/codec/build/win32/enc/WelsEncPlus.vcproj
+++ b/codec/build/win32/enc/WelsEncPlus.vcproj
@@ -52,7 +52,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;MT_ENABLED;X86_ASM"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -151,7 +151,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;_DEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;MT_ENABLED;X86_ASM"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -254,7 +254,7 @@
 				FavorSizeOrSpeed="1"
 				EnableFiberSafeOptimizations="true"
 				WholeProgramOptimization="true"
-				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;MT_ENABLED;X86_ASM"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -359,7 +359,7 @@
 				FavorSizeOrSpeed="1"
 				EnableFiberSafeOptimizations="true"
 				WholeProgramOptimization="true"
-				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common;..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;NDEBUG;_WINDOWS;_USRDLL;WELSENCPLUS_EXPORTS;MT_ENABLED;X86_ASM"
 				StringPooling="true"
 				RuntimeLibrary="2"
--- a/codec/build/win32/enc/encConsole.vcproj
+++ b/codec/build/win32/enc/encConsole.vcproj
@@ -48,7 +48,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common,..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;MT_ENABLED;"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -143,7 +143,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common,..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;X86_ASM;MT_ENABLED;"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -238,7 +238,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common,..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;_DEBUG;_CONSOLE;MT_ENABLED"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -334,7 +334,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common"
+				AdditionalIncludeDirectories="..\..\..\console\enc\inc,..\..\..\api\svc,..\..\..\WelsThreadLib\api,..\..\..\encoder\core\inc,..\..\..\common,..\..\..\processing\interface"
 				PreprocessorDefinitions="WIN64;NDEBUG;_CONSOLE;MT_ENABLED"
 				StringPooling="true"
 				RuntimeLibrary="2"
--- a/codec/encoder/core/inc/IWelsVP.h
+++ /dev/null
@@ -1,288 +1,0 @@
-/*!
- * \copy
- *     Copyright (c)  2004-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	    :  IWelsVP.h
- *
- * \brief	    :  Interface of wels video processor class
- *
- * \date        :  2011/01/04
- *
- * \description :  1. should support both C/C++ style interface
- *                 2. should concern with the feature extension requirement
- *                 3. should care the usage of "char"==>
- *                     1) value char  : signed char/unsigned char
- *                     2) string char : char
- *
- *************************************************************************************
- */
-
-#ifndef IWELSVP_H_
-#define IWELSVP_H_
-
-#ifdef _WIN32
-#define WELSAPI __stdcall
-#else
-#define WELSAPI
-#endif
-
-#define WELSVP_MAJOR_VERSION   1
-#define WELSVP_MINOR_VERSION   1
-#define WELSVP_VERSION         ((WELSVP_MAJOR_VERSION << 8) + WELSVP_MINOR_VERSION)
-
-typedef enum {
-  RET_SUCCESS          =  0,
-  RET_FAILED           = -1,
-  RET_INVALIDPARAM     = -2,
-  RET_OUTOFMEMORY      = -3,
-  RET_NOTSUPPORTED       = -4,
-  RET_UNEXPECTED       = -5,
-  RET_NEEDREINIT		  = -6
-} EResult;
-
-typedef enum {
-  VIDEO_FORMAT_NULL       = 0,   /* invalid format   */
-  /*rgb color formats*/
-  VIDEO_FORMAT_RGB        = 1,   /* rgb 24bits       */
-  VIDEO_FORMAT_RGBA       = 2,   /* rgba             */
-  VIDEO_FORMAT_RGB555     = 3,   /* rgb555           */
-  VIDEO_FORMAT_RGB565     = 4,   /* rgb565           */
-  VIDEO_FORMAT_BGR        = 5,   /* bgr 24bits       */
-  VIDEO_FORMAT_BGRA       = 6,   /* bgr 32bits       */
-  VIDEO_FORMAT_ABGR       = 7,   /* abgr             */
-  VIDEO_FORMAT_ARGB       = 8,   /* argb             */
-
-  /*yuv color formats*/
-  VIDEO_FORMAT_YUY2       = 20,   /* yuy2             */
-  VIDEO_FORMAT_YVYU       = 21,   /* yvyu             */
-  VIDEO_FORMAT_UYVY       = 22,   /* uyvy             */
-  VIDEO_FORMAT_I420       = 23,   /* yuv 4:2:0 planar */
-  VIDEO_FORMAT_YV12       = 24,   /* yuv 4:2:0 planar */
-  VIDEO_FORMAT_INTERNAL   = 25,   /* Only Used for SVC decoder testbed */
-  VIDEO_FORMAT_NV12		= 26,	/* y planar + uv packed */
-  VIDEO_FORMAT_I422       = 27,   /* yuv 4:2:2 planar */
-  VIDEO_FORMAT_I444       = 28,   /* yuv 4:4:4 planar */
-  VIDEO_FORMAT_YUYV       = 20,   /* yuv 4:2:2 packed */
-
-
-  VIDEO_FORMAT_RGB24      = 1,
-  VIDEO_FORMAT_RGB32      = 2,
-  VIDEO_FORMAT_RGB24_INV  = 5,
-  VIDEO_FORMAT_RGB32_INV  = 6,
-  VIDEO_FORMAT_RGB555_INV = 7,
-  VIDEO_FORMAT_RGB565_INV = 8,
-  VIDEO_FORMAT_YUV2       = 21,
-  VIDEO_FORMAT_420        = 23,
-
-
-  VIDEO_FORMAT_VFlip      = 0x80000000
-} EVideoFormat;
-
-typedef enum {
-  BUFFER_HOSTMEM  = 0,
-  BUFFER_SURFACE
-} EPixMapBufferProperty;
-
-typedef struct {
-  int iRectTop;
-  int iRectLeft;
-  int iRectWidth;
-  int iRectHeight;
-} SRect;
-
-typedef struct {
-  void*        pPixel[3];
-  int          iSizeInBits;
-  int          iStride[3];
-  SRect        sRect;
-  EVideoFormat eFormat;
-  EPixMapBufferProperty eProperty;//not use? to remove? but how about the size of SPixMap?
-} SPixMap;
-
-typedef enum {
-  METHOD_NULL              = 0,
-  METHOD_COLORSPACE_CONVERT    ,//not support yet
-  METHOD_DENOISE              ,
-  METHOD_SCENE_CHANGE_DETECTION ,
-  METHOD_DOWNSAMPLE			  ,
-  METHOD_VAA_STATISTICS        ,
-  METHOD_BACKGROUND_DETECTION  ,
-  METHOD_ADAPTIVE_QUANT ,
-  METHOD_COMPLEXITY_ANALYSIS   ,
-  METHOD_IMAGE_ROTATE		  ,
-  METHOD_MASK
-} EMethods;
-
-//-----------------------------------------------------------------//
-//  Algorithm parameters define
-//-----------------------------------------------------------------//
-
-typedef struct {
-  int bSceneChangeFlag; // 0:false ; 1:true
-} SSceneChangeResult;
-
-typedef enum {
-  SIMILAR_SCENE,      //similar scene
-  MEDIUM_CHANGED_SCENE,   //medium changed scene
-  LARGE_CHANGED_SCENE,   //large changed scene
-} ESceneChangeIdc;
-
-typedef struct {
-  unsigned char* pCurY;					// Y data of current frame
-  unsigned char* pRefY;					// Y data of pRef frame for diff calc
-  int (*pSad8x8)[4];				// sad of 8x8, every 4 in the same 16x16 get together
-  int* pSsd16x16;					// sum of square difference of 16x16
-  int* pSum16x16;					// sum of 16x16
-  int* pSumOfSquare16x16;					// sum of square of 16x16
-  int	(*pSumOfDiff8x8)[4];
-  unsigned char (*pMad8x8)[4];
-  int iFrameSad;					// sad of frame
-} SVAACalcResult;
-
-typedef struct {
-  int iCalcVar;
-  int iCalcBgd;
-  int iCalcSsd;
-  int iReserved;
-  SVAACalcResult*	pCalcResult;
-} SVAACalcParam;
-
-typedef struct {
-  signed char*		pBackgroundMbFlag;
-  SVAACalcResult*  pCalcRes;
-} SBGDInterface;
-
-typedef enum {
-  AQ_QUALITY_MODE,   //Quality mode
-  AQ_BITRATE_MODE,   //Bitrate mode
-} EAQModes;
-
-typedef struct {
-  unsigned short    uiMotionIndex;
-  unsigned short    uiTextureIndex;
-} SMotionTextureUnit;
-
-typedef struct {
-  int					iAdaptiveQuantMode; // 0:quality mode, 1:bitrates mode
-  SVAACalcResult*		pCalcResult;
-  SMotionTextureUnit*  pMotionTextureUnit;
-
-  signed char*			pMotionTextureIndexToDeltaQp;
-  double				dAverMotionTextureIndexToDeltaQp;
-} SAdaptiveQuantizationParam;
-
-typedef enum {
-  FRAME_SAD     =  0,
-  GOM_SAD       = -1,
-  GOM_VAR       = -2
-} EComplexityAnalysisMode;
-
-typedef struct {
-  int  iComplexityAnalysisMode;
-  int  iCalcBgd;
-  int  iMbNumInGom;
-  int  iFrameComplexity;
-  int*  pGomComplexity;
-  int*  pGomForegroundBlockNum;
-  signed char*  pBackgroundMbFlag;
-  unsigned int* uiRefMbType;
-  SVAACalcResult*  pCalcResult;
-} SComplexityAnalysisParam;
-
-/////////////////////////////////////////////////////////////////////////////////////////////
-
-typedef struct {
-  void*    pCtx;
-  EResult (*Init) (void* pCtx, int iType, void* pCfg);
-  EResult (*Uninit) (void* pCtx, int iType);
-  EResult (*Flush) (void* pCtx, int iType);
-  EResult (*Process) (void* pCtx, int iType, SPixMap* pSrc, SPixMap* dst);
-  EResult (*Get) (void* pCtx, int iType, void* pParam);
-  EResult (*Set) (void* pCtx, int iType, void* pParam);
-  EResult (*SpecialFeature) (void* pCtx, int iType, void* pIn, void* pOut);
-} IWelsVPc;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)  /* C++ style interface */
-
-class IWelsVP {
- public:
-  virtual ~IWelsVP() {}
-
- public:
-  virtual EResult Init (int iType, void* pCfg) = 0;
-  virtual EResult Uninit (int iType) = 0;
-  virtual EResult Flush (int iType) = 0;
-  virtual EResult Process (int iType, SPixMap* pSrc, SPixMap* dst) = 0;
-  virtual EResult Get (int iType, void* pParam) = 0;
-  virtual EResult Set (int iType, void* pParam) = 0;
-  virtual EResult SpecialFeature (int iType, void* pIn, void* pOut) = 0;
-};
-
-/* Recommend to invoke the interface via the micro for convenient */
-#define IWelsVPFunc_Init(p, a, b)                  (p)->Init(a, b)
-#define IWelsVPFunc_Uninit(p, a)                   (p)->Uninit(a)
-#define IWelsVPFunc_Flush(p, a)                    (p)->Flush(a)
-#define IWelsVPFunc_Process(p, a, b, c)            (p)->Process(a, b, c)
-#define IWelsVPFunc_Get(p, a, b)                   (p)->Get(a, b)
-#define IWelsVPFunc_Set(p, a, b)                   (p)->Set(a, b)
-#define IWelsVPFunc_SpecialFeature(p, a, b, c)     (p)->SpecialFeature(a, b, c)
-
-/* C++ interface version */
-#define WELSVP_INTERFACE_VERION                    (0x8000 + (WELSVP_VERSION & 0x7fff))
-#define WELSVP_EXTERNC_BEGIN                       extern "C" {
-#define WELSVP_EXTERNC_END                         }
-
-#else    /* C style interface */
-
-/* Recommend to invoke the interface via the micro for convenient */
-#define IWelsVPFunc_Init(p, a, b)                  (p)->Init(p->h, a, b)
-#define IWelsVPFunc_Uninit(p, a)                   (p)->Uninit(p->h, a)
-#define IWelsVPFunc_Flush(p, a)                    (p)->Flush(p->h, a)
-#define IWelsVPFunc_Process(p, a, b, c)            (p)->Process(p->h, a, b, c)
-#define IWelsVPFunc_Get(p, a, b)                   (p)->Get(p->h, a, b)
-#define IWelsVPFunc_Set(p, a, b)                   (p)->Set(p->h, a, b)
-#define IWelsVPFunc_SpecialFeature(p, a, b, c)     (p)->SpecialFeature(p->h, a, b, c)
-
-/* C interface version */
-#define WELSVP_INTERFACE_VERION                    (0x0001 + (WELSVP_VERSION & 0x7fff))
-#define WELSVP_EXTERNC_BEGIN
-#define WELSVP_EXTERNC_END
-
-#endif
-
-WELSVP_EXTERNC_BEGIN
-EResult WELSAPI CreateVpInterface (void** ppCtx, int iVersion /*= WELSVP_INTERFACE_VERION*/);
-EResult WELSAPI DestroyVpInterface (void* pCtx , int iVersion /*= WELSVP_INTERFACE_VERION*/);
-WELSVP_EXTERNC_END
-
-//////////////////////////////////////////////////////////////////////////////////////////////
-#endif // IWELSVP_H_
-
-