summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h
diff options
context:
space:
mode:
authorDharmaray Kundargi <dharmaray@google.com>2011-01-16 15:59:43 -0800
committerDharmaray Kundargi <dharmaray@google.com>2011-01-17 09:59:01 -0800
commit7c9d8018755adf1857571125ba1b3598c96ea506 (patch)
tree6f97c14846692c0a7580c3a6019f7c91c669ffcf /libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h
parent5358e878396e1c451e9f9ef07237c2e6ab662d49 (diff)
downloadframeworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.zip
frameworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.tar.gz
frameworks_av-7c9d8018755adf1857571125ba1b3598c96ea506.tar.bz2
Removed unwanted line in M4READER_Amr.h
vss core files upload on honeycomb Change-Id: I61206ae2398ce8ac544c6fb01a76fe8917bce75b
Diffstat (limited to 'libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h')
-rwxr-xr-xlibvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h786
1 files changed, 786 insertions, 0 deletions
diff --git a/libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h b/libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h
new file mode 100755
index 0000000..390c6e4
--- /dev/null
+++ b/libvideoeditor/vss/common/inc/M4VIFI_FiltersAPI.h
@@ -0,0 +1,786 @@
+/*
+ * Copyright (C) 2004-2011 NXP Software
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ ******************************************************************************
+ * @file M4VIFI_FiltersAPI.h
+ * @brief External API and Data definitions for the video filter library
+ * @note This file defines and declares data common to the video filter library:
+ * -# data types
+ * -# error codes
+ * -# external API's
+ * -# API level structure definition
+ ******************************************************************************
+*/
+
+#ifndef _M4VIFI_FILTERSAPI_H_
+
+#define _M4VIFI_FILTERSAPI_H_
+
+#ifdef __cplusplus
+
+extern "C" {
+
+#endif /* __cplusplus */
+
+ /**
+ ***********************************************************
+ * Data types definition
+ ***********************************************************
+ */
+
+ typedef unsigned char M4VIFI_UInt8;
+ typedef char M4VIFI_Int8;
+ typedef unsigned short M4VIFI_UInt16;
+ typedef unsigned long M4VIFI_UInt32;
+ typedef short M4VIFI_Int16;
+ typedef long M4VIFI_Int32;
+ typedef float M4VIFI_Float;
+ typedef double M4VIFI_Double;
+ typedef unsigned char M4VIFI_ErrorCode;
+
+/**
+ ***********************************************************
+ * Error codes definition
+ ***********************************************************
+*/
+#define M4VIFI_OK 0
+#define M4VIFI_INVALID_PARAM 7
+#define M4VIFI_ILLEGAL_FRAME_HEIGHT 8
+#define M4VIFI_ILLEGAL_FRAME_WIDTH 9
+
+/**
+ ***********************************************************
+ * Other basic definitions
+ ***********************************************************
+*/
+#define CNST const
+#define EXTERN extern
+
+#ifndef NULL
+#define NULL 0
+
+#endif
+#ifndef FALSE
+#define FALSE 0
+#define TRUE !FALSE
+
+#endif
+
+/**
+ ***********************************************************
+ * Structures definition
+ ***********************************************************
+*/
+
+/**
+ ******************************************************************************
+ * structure M4VIFI_ImagePlane
+ * @brief Texture (YUV) planes structure
+ * @note This structure details the image planes for the output textures:
+ * sizes (in pixels) are luma plane sizes, the 3 pointers point
+ * to the Y, U and V buffers which store data in planar format.
+ ******************************************************************************
+*/
+
+ typedef struct
+ {
+ M4VIFI_UInt32 u_width; /**< Width of luma in pixel unit */
+ M4VIFI_UInt32 u_height; /**< Height of luma in pixel unit */
+ M4VIFI_UInt32 u_topleft; /**< Pointer to first texture active pixel */
+ M4VIFI_UInt32 u_stride; /**< Stride value */
+ M4VIFI_UInt8 *pac_data; /**< Pointer to the data */
+ } M4VIFI_ImagePlane;
+
+/**
+ ******************************************************************************
+ * structure M4VIFI_FramingData
+ * @brief Data necessary to add an overlay on an image
+ * @note This structure details the position and the data of the overlay
+ ******************************************************************************
+*/
+ typedef struct
+ {
+ M4VIFI_UInt32
+ m_xPosStep; /**< X positioning of the overlay vs main picture.
+ X positioning is expressed in percentage vs the main
+ picture width.
+ m_xPosStep must be expressed by step of 1% and between
+ -50/+50%.
+ 0% means overlay is centered vs main picture on
+ X abscissa. */
+ M4VIFI_UInt32
+ m_yPosStep; /**< Y positioning of the overlay vs main picture.
+ Y positioning is expressed in percentage vs the main
+ picture width.
+ m_xPosStep must be expressed by step of 1% and between
+ -50/+50%.
+ 0% means overlay is centered vs main picture on
+ Y abscissa. */
+
+ M4VIFI_ImagePlane
+ *
+ m_imagePlane; /**< Pointer to the framing image with alpha channel */
+ } M4VIFI_FramingData;
+
+/**
+ ******************************************************************************
+ * structure M4VIFI_HLSoffset
+ * @brief HLS offset structure
+ * @note This structure have the hue, saturation and lightness value
+ * for quality enhancement. Range of values neccessarily be
+ * hue = -360 to 360, sat = 0 to 100 and light = 0 t0 100
+ ******************************************************************************
+*/
+ typedef struct
+ {
+ M4VIFI_Int16 hue; /**< Hue offset */
+ M4VIFI_Int16 sat; /**< Saturation offset */
+ M4VIFI_Int16 light; /**< Light offset */
+ } M4VIFI_HLSoffset;
+
+/**
+ ******************************************************************************
+ * structure M4VIFI_Tranformation
+ * @brief Image Tranformation Structure
+ * @note Image Tranformation Request
+ * rotation : 1 -> +90deg Rotation
+ * -1 -> -90deg Rotation
+ * 0 -> No Rotation
+ ******************************************************************************
+*/
+ typedef struct
+ {
+ M4VIFI_Int32 i32_rotation; /**< Rotation Flag */
+ } M4VIFI_Tranformation;
+
+/**
+ ******************************************************************************
+ * structure M4VIFI_pContext
+ * @brief New Structures
+ * @note -# Structure of M4VIFI_HLSoffset
+ ******************************************************************************
+*/
+ typedef struct
+ {
+ M4VIFI_HLSoffset hlsOffset; /**< HLS offset structure */
+ } M4VIFI_pContext;
+
+ /*
+ *****************************************************
+ * External API functions
+ *****************************************************
+ */
+
+ /**< Effect filters */
+ M4VIFI_UInt8 M4VIFI_SepiaYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_GrayscaleYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_ContrastYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_NegativeYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_FlipYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_MirrorYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_Rotate180YUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_Rotate90RightYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_Rotate90LeftYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_ColorRYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_ColorGYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_ColorBYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_FramingRGB565toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_FramingYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_SetHueInYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_ColdYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ M4VIFI_UInt8 M4VIFI_WarmYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+/* ADS Compiler */
+
+/* Generic ARM assembly functions */
+#if defined ADS_ARM
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear RGB888toRGB888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear RGB565toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** RGB565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB565toYUV420AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BGR565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR565toYUV420AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV422 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_UYVYtoYUV420AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420 to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in RGB565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinRGB565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in BGR565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinBGR565AdsArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420AdsArm
+#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420AdsArm
+#define M4VIFI_UYVYtoYUV420 M4VIFI_UYVYtoYUV420AdsArm
+#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565AdsArm
+#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565AdsArm
+#define M4VIFI_ResizeBilinearYUV420toRGB565 \
+ M4VIFI_ResizeBilinearYUV420toRGB565AdsArm
+
+#define M4VIFI_ResizeBilinearYUV420toBGR565 \
+ M4VIFI_ResizeBilinearYUV420toBGR565AdsArm
+
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm
+
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm
+
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm
+
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm
+
+#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565AdsArm
+#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565AdsArm
+
+/* ARM9E assembly functions */
+#elif defined ADS_ARM9E
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV888toYUV888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV565toYUV565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** RGB565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB565toYUV420AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BGR565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR565toYUV420AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV422 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_UYVYtoYUV420AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420 to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in RGB565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinRGB565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in BGR565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinBGR565AdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize YUV420toYUV420 from QCIF to QVGA*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGAAdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGAAdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA with rotation +90*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RRAdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA with rotation -90*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RLAdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+/** Resizes YUV420 Planar Image and stores in YUV420 Linear format with/without +or-90 rotation*/
+ M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV420LinearAdsArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420AdsArm9E
+#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420AdsArm9E
+#define M4VIFI_UYVYtoYUV420 M4VIFI_UYVYtoYUV420AdsArm9E
+#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565AdsArm9E
+#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565AdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565 \
+ M4VIFI_ResizeBilinearYUV420toRGB565AdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565 \
+ M4VIFI_ResizeBilinearYUV420toBGR565AdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm9E
+#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565AdsArm9E
+#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565AdsArm9E
+#define M4VIFI_YUV420QCIFtoYUV420QVGA M4VIFI_YUV420QCIFtoYUV420QVGAAdsArm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA M4VIFI_YUV420QCIFtoRGB565QVGAAdsArm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA_RR M4VIFI_YUV420QCIFtoRGB565QVGA_RRAdsArm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA_RL M4VIFI_YUV420QCIFtoRGB565QVGA_RLAdsArm9E
+#define M4VIFI_YUV420PlanartoYUV420Linear M4VIFI_YUV420PlanartoYUV420LinearAdsArm9E
+/* GCC Compiler */
+/* Generic ARM assembly functions */
+
+#elif defined GCC_ARM
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV888toYUV888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV565toYUV565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** RGB565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB565toYUV420GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BGR565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR565toYUV420GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420 to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toBGR565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Modify HLS in RGB565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinRGB565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Modify HLS in BGR565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinBGR565GccArm(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420GccArm
+#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420GccArm
+#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565GccArm
+#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565GccArm
+#define M4VIFI_ResizeBilinearYUV420toRGB565 \
+ M4VIFI_ResizeBilinearYUV420toRGB565GccArm
+#define M4VIFI_ResizeBilinearYUV420toBGR565 \
+ M4VIFI_ResizeBilinearYUV420toBGR565GccArm
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm
+#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565GccArm
+#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565GccArm
+
+/* ARM9E assembly functions */
+#elif defined GCC_ARM9E
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV888toYUV888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV565toYUV565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** RGB565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB565toYUV420GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BGR565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR565toYUV420GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420 to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm9E(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in RGB565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinRGB565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in BGR565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinBGR565GccArm9E(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420GccArm9E
+#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420GccArm9E
+#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565GccArm9E
+#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565GccArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565 \
+ M4VIFI_ResizeBilinearYUV420toRGB565GccArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565 \
+ M4VIFI_ResizeBilinearYUV420toBGR565GccArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm9E
+#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm9E
+#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565GccArm9E
+#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565GccArm9E
+
+/* TI CCS assembly files */
+#elif defined TI411_ARM9E
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV888toYUV888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV565toYUV565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** YUV420 (Planar) to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 (Planar) to Resized RGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 (Planar) to Resized RGB888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420(Planar) to Resized and Rotated (-90) RGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420(Planar) to Resized and Rotated (+90) RGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420(Planar) to Resized YUV420(Planar) */
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGA(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution */
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+/** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution with rotation(-90) */
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RL(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+/** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution with rotation(+90) */
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RR(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565Ti411Arm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565 \
+ M4VIFI_ResizeBilinearYUV420toRGB565Ti411Arm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftTi411Arm9E
+#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \
+ M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightTi411Arm9E
+
+#define M4VIFI_YUV420QCIFtoYUV420QVGA M4VIFI_YUV420QCIFtoYUV420QVGATi411Arm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA M4VIFI_YUV420QCIFtoRGB565QVGATi411Arm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA_RL M4VIFI_YUV420QCIFtoRGB565QVGA_RLTi411Arm9E
+#define M4VIFI_YUV420QCIFtoRGB565QVGA_RR M4VIFI_YUV420QCIFtoRGB565QVGA_RRTi411Arm9E
+
+/* ANSI C Functions */
+#else
+
+ /** Apply grayscale effect RGB565toRGB565 */
+
+ M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV888toYUV888 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV565toYUV565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+ /** RGB565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB565toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BRG565 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR565toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** BRG888 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_BGR888toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane PlaneOut[3]);
+ /** RGB888 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_RGB888toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane PlaneOut[3]);
+
+ /** YUV422 to YUV420 */
+ M4VIFI_UInt8 M4VIFI_UYVYtoYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+
+ /** YUV420 to RGB565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565RotatedLeft(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** YUV420 to BGR565 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR565RotatedRight(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** YUV420 to BGR24 */
+ M4VIFI_UInt8 M4VIFI_YUV420toBGR24(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** YUV420 to RGB24 */
+ M4VIFI_UInt8 M4VIFI_YUV420toRGB24(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** Resize Bilinear YUV420toYUV420 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /** Resize Bilinear YUV420toRGB565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB888(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight(
+ void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in RGB565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinRGB565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /** Modify HLS in BGR565 */
+ M4VIFI_UInt8 M4VIFI_SetHLSinBGR565(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ /**Resize YUV420toYUV420 from QCIF to QVGA*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGA(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA with rotation +90*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RR(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+ /**Resize YUV420toRGB565 from QCIF to QVGA with rotation -90*/
+ M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RL(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+/** Resizes YUV420 Planar Image and stores in YUV420 Linear format with/without +or-90 rotation*/
+ M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV420Linear(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+
+/** Resizes YUV420 Planar Image and stores in YUV422 Interleaved format
+ with/without +or-90 rotation*/
+ M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV422Interleaved(void *pUserData,
+ M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut);
+#endif
+
+ /** definition of the converter function types */
+
+ typedef M4VIFI_UInt8 M4VIFI_PlanConverterFunctionType(void
+ *pContext, M4VIFI_ImagePlane* in, M4VIFI_ImagePlane* out);
+
+ /** definition of the preprocessing function types */
+ typedef M4VIFI_UInt8 M4VIFI_PreprocessFunctionType(void
+ *pContext, M4VIFI_ImagePlane* in, M4VIFI_ImagePlane* out);
+
+ M4VIFI_UInt8 M4VIFI_YUV420toYUV420(void *user_data,
+ M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_YUV420PlanarToYUV420Semiplanar(void *user_data,
+ M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut);
+ M4VIFI_UInt8 M4VIFI_SemiplanarYUV420toYUV420(void *user_data,
+ M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut);
+#ifdef __cplusplus
+
+}
+
+#endif /* __cplusplus */
+
+#endif /* _M4VIFI_FILTERSAPI_H_ */
+
+/* End of file M4VIFI_FiltersAPI.h */