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_
-
-