| /* |
| * 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 */ |