11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 61bd4fe43Sopenharmony_ci * 71bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 131bd4fe43Sopenharmony_ci * limitations under the License. 141bd4fe43Sopenharmony_ci */ 151bd4fe43Sopenharmony_ci 161bd4fe43Sopenharmony_ci#ifndef __HI_COMM_VIDEO_H__ 171bd4fe43Sopenharmony_ci#define __HI_COMM_VIDEO_H__ 181bd4fe43Sopenharmony_ci 191bd4fe43Sopenharmony_ci#include "hi_type.h" 201bd4fe43Sopenharmony_ci#include "hi_common.h" 211bd4fe43Sopenharmony_ci 221bd4fe43Sopenharmony_ci#ifdef __cplusplus 231bd4fe43Sopenharmony_ci#if __cplusplus 241bd4fe43Sopenharmony_ciextern "C" { 251bd4fe43Sopenharmony_ci#endif 261bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 271bd4fe43Sopenharmony_ci 281bd4fe43Sopenharmony_ci#define SRC_LENS_COEF_SEG 2 291bd4fe43Sopenharmony_ci#define DST_LENS_COEF_SEG 3 301bd4fe43Sopenharmony_ci#define SRC_LENS_COEF_NUM 4 311bd4fe43Sopenharmony_ci#define DST_LENS_COEF_NUM 4 321bd4fe43Sopenharmony_ci#define DST_LENS_COEF_SEG_POINT (DST_LENS_COEF_SEG - 1) 331bd4fe43Sopenharmony_ci 341bd4fe43Sopenharmony_ci#define ISP_BAYER_CHN (4) 351bd4fe43Sopenharmony_ci 361bd4fe43Sopenharmony_citypedef enum hiOPERATION_MODE_E { 371bd4fe43Sopenharmony_ci OPERATION_MODE_AUTO = 0, 381bd4fe43Sopenharmony_ci OPERATION_MODE_MANUAL = 1, 391bd4fe43Sopenharmony_ci OPERATION_MODE_BUTT 401bd4fe43Sopenharmony_ci} OPERATION_MODE_E; 411bd4fe43Sopenharmony_ci 421bd4fe43Sopenharmony_ci/* Angle of rotation */ 431bd4fe43Sopenharmony_citypedef enum hiROTATION_E { 441bd4fe43Sopenharmony_ci ROTATION_0 = 0, 451bd4fe43Sopenharmony_ci ROTATION_90 = 1, 461bd4fe43Sopenharmony_ci ROTATION_180 = 2, 471bd4fe43Sopenharmony_ci ROTATION_270 = 3, 481bd4fe43Sopenharmony_ci ROTATION_BUTT 491bd4fe43Sopenharmony_ci} ROTATION_E; 501bd4fe43Sopenharmony_ci 511bd4fe43Sopenharmony_citypedef enum hiVB_SOURCE_E { 521bd4fe43Sopenharmony_ci VB_SOURCE_COMMON = 0, 531bd4fe43Sopenharmony_ci VB_SOURCE_MODULE = 1, 541bd4fe43Sopenharmony_ci VB_SOURCE_PRIVATE = 2, 551bd4fe43Sopenharmony_ci VB_SOURCE_USER = 3, 561bd4fe43Sopenharmony_ci VB_SOURCE_BUTT 571bd4fe43Sopenharmony_ci} VB_SOURCE_E; 581bd4fe43Sopenharmony_ci 591bd4fe43Sopenharmony_citypedef enum hiDATA_RATE_E { 601bd4fe43Sopenharmony_ci DATA_RATE_X1 = 0, /* RW; output 1 pixel per clock */ 611bd4fe43Sopenharmony_ci DATA_RATE_X2 = 1, /* RW; output 2 pixel per clock */ 621bd4fe43Sopenharmony_ci 631bd4fe43Sopenharmony_ci DATA_RATE_BUTT 641bd4fe43Sopenharmony_ci} DATA_RATE_E; 651bd4fe43Sopenharmony_ci 661bd4fe43Sopenharmony_citypedef struct hiBORDER_S { 671bd4fe43Sopenharmony_ci HI_U32 u32TopWidth; 681bd4fe43Sopenharmony_ci HI_U32 u32BottomWidth; 691bd4fe43Sopenharmony_ci HI_U32 u32LeftWidth; 701bd4fe43Sopenharmony_ci HI_U32 u32RightWidth; 711bd4fe43Sopenharmony_ci HI_U32 u32Color; 721bd4fe43Sopenharmony_ci} BORDER_S; 731bd4fe43Sopenharmony_ci 741bd4fe43Sopenharmony_citypedef struct hiPOINT_S { 751bd4fe43Sopenharmony_ci HI_S32 s32X; 761bd4fe43Sopenharmony_ci HI_S32 s32Y; 771bd4fe43Sopenharmony_ci} POINT_S; 781bd4fe43Sopenharmony_ci 791bd4fe43Sopenharmony_citypedef struct hiSIZE_S { 801bd4fe43Sopenharmony_ci HI_U32 u32Width; 811bd4fe43Sopenharmony_ci HI_U32 u32Height; 821bd4fe43Sopenharmony_ci} SIZE_S; 831bd4fe43Sopenharmony_ci 841bd4fe43Sopenharmony_citypedef struct hiRECT_S { 851bd4fe43Sopenharmony_ci HI_S32 s32X; 861bd4fe43Sopenharmony_ci HI_S32 s32Y; 871bd4fe43Sopenharmony_ci HI_U32 u32Width; 881bd4fe43Sopenharmony_ci HI_U32 u32Height; 891bd4fe43Sopenharmony_ci} RECT_S; 901bd4fe43Sopenharmony_ci 911bd4fe43Sopenharmony_citypedef struct hiVIDEO_REGION_INFO_S { 921bd4fe43Sopenharmony_ci HI_U32 u32RegionNum; /* W; count of the region */ 931bd4fe43Sopenharmony_ci RECT_S ATTRIBUTE *pstRegion; /* W; region attribute */ 941bd4fe43Sopenharmony_ci} VIDEO_REGION_INFO_S; 951bd4fe43Sopenharmony_ci 961bd4fe43Sopenharmony_citypedef struct hiCROP_INFO_S { 971bd4fe43Sopenharmony_ci HI_BOOL bEnable; 981bd4fe43Sopenharmony_ci RECT_S stRect; 991bd4fe43Sopenharmony_ci} CROP_INFO_S; 1001bd4fe43Sopenharmony_ci 1011bd4fe43Sopenharmony_citypedef struct hiFRAME_RATE_CTRL_S { 1021bd4fe43Sopenharmony_ci HI_S32 s32SrcFrameRate; /* RW; source frame rate */ 1031bd4fe43Sopenharmony_ci HI_S32 s32DstFrameRate; /* RW; dest frame rate */ 1041bd4fe43Sopenharmony_ci} FRAME_RATE_CTRL_S; 1051bd4fe43Sopenharmony_ci 1061bd4fe43Sopenharmony_citypedef enum hiASPECT_RATIO_E { 1071bd4fe43Sopenharmony_ci ASPECT_RATIO_NONE = 0, /* full screen */ 1081bd4fe43Sopenharmony_ci ASPECT_RATIO_AUTO = 1, /* ratio no change, 1:1 */ 1091bd4fe43Sopenharmony_ci ASPECT_RATIO_MANUAL = 2, /* ratio manual set */ 1101bd4fe43Sopenharmony_ci ASPECT_RATIO_BUTT 1111bd4fe43Sopenharmony_ci} ASPECT_RATIO_E; 1121bd4fe43Sopenharmony_ci 1131bd4fe43Sopenharmony_citypedef struct hiASPECT_RATIO_S { 1141bd4fe43Sopenharmony_ci ASPECT_RATIO_E enMode; /* aspect ratio mode: none/auto/manual */ 1151bd4fe43Sopenharmony_ci HI_U32 u32BgColor; /* background color, RGB 888 */ 1161bd4fe43Sopenharmony_ci RECT_S stVideoRect; /* valid in ASPECT_RATIO_MANUAL mode */ 1171bd4fe43Sopenharmony_ci} ASPECT_RATIO_S; 1181bd4fe43Sopenharmony_ci 1191bd4fe43Sopenharmony_ci/* we ONLY define picture format used, all unused will be deleted! */ 1201bd4fe43Sopenharmony_citypedef enum hiPIXEL_FORMAT_E { 1211bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_444 = 0, 1221bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_555, 1231bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_565, 1241bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_888, 1251bd4fe43Sopenharmony_ci 1261bd4fe43Sopenharmony_ci PIXEL_FORMAT_BGR_444, 1271bd4fe43Sopenharmony_ci PIXEL_FORMAT_BGR_555, 1281bd4fe43Sopenharmony_ci PIXEL_FORMAT_BGR_565, 1291bd4fe43Sopenharmony_ci PIXEL_FORMAT_BGR_888, 1301bd4fe43Sopenharmony_ci 1311bd4fe43Sopenharmony_ci PIXEL_FORMAT_ARGB_1555, 1321bd4fe43Sopenharmony_ci PIXEL_FORMAT_ARGB_4444, 1331bd4fe43Sopenharmony_ci PIXEL_FORMAT_ARGB_8565, 1341bd4fe43Sopenharmony_ci PIXEL_FORMAT_ARGB_8888, 1351bd4fe43Sopenharmony_ci PIXEL_FORMAT_ARGB_2BPP, 1361bd4fe43Sopenharmony_ci 1371bd4fe43Sopenharmony_ci PIXEL_FORMAT_ABGR_1555, 1381bd4fe43Sopenharmony_ci PIXEL_FORMAT_ABGR_4444, 1391bd4fe43Sopenharmony_ci PIXEL_FORMAT_ABGR_8565, 1401bd4fe43Sopenharmony_ci PIXEL_FORMAT_ABGR_8888, 1411bd4fe43Sopenharmony_ci 1421bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_BAYER_8BPP, 1431bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_BAYER_10BPP, 1441bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_BAYER_12BPP, 1451bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_BAYER_14BPP, 1461bd4fe43Sopenharmony_ci PIXEL_FORMAT_RGB_BAYER_16BPP, 1471bd4fe43Sopenharmony_ci 1481bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_PLANAR_422, 1491bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_PLANAR_420, 1501bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_PLANAR_444, 1511bd4fe43Sopenharmony_ci 1521bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_SEMIPLANAR_422, 1531bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_SEMIPLANAR_420, 1541bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVU_SEMIPLANAR_444, 1551bd4fe43Sopenharmony_ci 1561bd4fe43Sopenharmony_ci PIXEL_FORMAT_YUV_SEMIPLANAR_422, 1571bd4fe43Sopenharmony_ci PIXEL_FORMAT_YUV_SEMIPLANAR_420, 1581bd4fe43Sopenharmony_ci PIXEL_FORMAT_YUV_SEMIPLANAR_444, 1591bd4fe43Sopenharmony_ci 1601bd4fe43Sopenharmony_ci PIXEL_FORMAT_YUYV_PACKAGE_422, 1611bd4fe43Sopenharmony_ci PIXEL_FORMAT_YVYU_PACKAGE_422, 1621bd4fe43Sopenharmony_ci PIXEL_FORMAT_UYVY_PACKAGE_422, 1631bd4fe43Sopenharmony_ci PIXEL_FORMAT_VYUY_PACKAGE_422, 1641bd4fe43Sopenharmony_ci PIXEL_FORMAT_YYUV_PACKAGE_422, 1651bd4fe43Sopenharmony_ci PIXEL_FORMAT_YYVU_PACKAGE_422, 1661bd4fe43Sopenharmony_ci PIXEL_FORMAT_UVYY_PACKAGE_422, 1671bd4fe43Sopenharmony_ci PIXEL_FORMAT_VUYY_PACKAGE_422, 1681bd4fe43Sopenharmony_ci PIXEL_FORMAT_VY1UY0_PACKAGE_422, 1691bd4fe43Sopenharmony_ci 1701bd4fe43Sopenharmony_ci PIXEL_FORMAT_YUV_400, 1711bd4fe43Sopenharmony_ci PIXEL_FORMAT_UV_420, 1721bd4fe43Sopenharmony_ci 1731bd4fe43Sopenharmony_ci /* SVP data format */ 1741bd4fe43Sopenharmony_ci PIXEL_FORMAT_BGR_888_PLANAR, 1751bd4fe43Sopenharmony_ci PIXEL_FORMAT_HSV_888_PACKAGE, 1761bd4fe43Sopenharmony_ci PIXEL_FORMAT_HSV_888_PLANAR, 1771bd4fe43Sopenharmony_ci PIXEL_FORMAT_LAB_888_PACKAGE, 1781bd4fe43Sopenharmony_ci PIXEL_FORMAT_LAB_888_PLANAR, 1791bd4fe43Sopenharmony_ci PIXEL_FORMAT_S8C1, 1801bd4fe43Sopenharmony_ci PIXEL_FORMAT_S8C2_PACKAGE, 1811bd4fe43Sopenharmony_ci PIXEL_FORMAT_S8C2_PLANAR, 1821bd4fe43Sopenharmony_ci PIXEL_FORMAT_S8C3_PLANAR, 1831bd4fe43Sopenharmony_ci PIXEL_FORMAT_S16C1, 1841bd4fe43Sopenharmony_ci PIXEL_FORMAT_U8C1, 1851bd4fe43Sopenharmony_ci PIXEL_FORMAT_U16C1, 1861bd4fe43Sopenharmony_ci PIXEL_FORMAT_S32C1, 1871bd4fe43Sopenharmony_ci PIXEL_FORMAT_U32C1, 1881bd4fe43Sopenharmony_ci PIXEL_FORMAT_U64C1, 1891bd4fe43Sopenharmony_ci PIXEL_FORMAT_S64C1, 1901bd4fe43Sopenharmony_ci 1911bd4fe43Sopenharmony_ci PIXEL_FORMAT_BUTT 1921bd4fe43Sopenharmony_ci} PIXEL_FORMAT_E; 1931bd4fe43Sopenharmony_ci 1941bd4fe43Sopenharmony_citypedef enum hiVIDEO_FIELD_E { 1951bd4fe43Sopenharmony_ci VIDEO_FIELD_TOP = 0x1, /* even field */ 1961bd4fe43Sopenharmony_ci VIDEO_FIELD_BOTTOM = 0x2, /* odd field */ 1971bd4fe43Sopenharmony_ci VIDEO_FIELD_INTERLACED = 0x3, /* two interlaced fields */ 1981bd4fe43Sopenharmony_ci VIDEO_FIELD_FRAME = 0x4, /* frame */ 1991bd4fe43Sopenharmony_ci 2001bd4fe43Sopenharmony_ci VIDEO_FIELD_BUTT 2011bd4fe43Sopenharmony_ci} VIDEO_FIELD_E; 2021bd4fe43Sopenharmony_ci 2031bd4fe43Sopenharmony_citypedef enum hiVIDEO_FORMAT_E { 2041bd4fe43Sopenharmony_ci VIDEO_FORMAT_LINEAR = 0, /* nature video line */ 2051bd4fe43Sopenharmony_ci VIDEO_FORMAT_TILE_64x16, /* tile cell: 64pixel x 16line */ 2061bd4fe43Sopenharmony_ci VIDEO_FORMAT_TILE_16x8, /* tile cell: 16pixel x 8line */ 2071bd4fe43Sopenharmony_ci VIDEO_FORMAT_LINEAR_DISCRETE, /* The data bits are aligned in bytes */ 2081bd4fe43Sopenharmony_ci VIDEO_FORMAT_BUTT 2091bd4fe43Sopenharmony_ci} VIDEO_FORMAT_E; 2101bd4fe43Sopenharmony_ci 2111bd4fe43Sopenharmony_citypedef enum hiCOMPRESS_MODE_E { 2121bd4fe43Sopenharmony_ci COMPRESS_MODE_NONE = 0, /* no compress */ 2131bd4fe43Sopenharmony_ci COMPRESS_MODE_SEG, /* compress unit is 256x1 bytes as a segment. */ 2141bd4fe43Sopenharmony_ci COMPRESS_MODE_TILE, /* compress unit is a tile. */ 2151bd4fe43Sopenharmony_ci COMPRESS_MODE_LINE, /* compress unit is the whole line. raw for VI */ 2161bd4fe43Sopenharmony_ci COMPRESS_MODE_FRAME, /* compress unit is the whole frame. YUV for VI(3DNR), RGB for TDE(write)/VO(read) */ 2171bd4fe43Sopenharmony_ci 2181bd4fe43Sopenharmony_ci COMPRESS_MODE_BUTT 2191bd4fe43Sopenharmony_ci} COMPRESS_MODE_E; 2201bd4fe43Sopenharmony_ci 2211bd4fe43Sopenharmony_citypedef enum hiVIDEO_DISPLAY_MODE_E { 2221bd4fe43Sopenharmony_ci VIDEO_DISPLAY_MODE_PREVIEW = 0x0, 2231bd4fe43Sopenharmony_ci VIDEO_DISPLAY_MODE_PLAYBACK = 0x1, 2241bd4fe43Sopenharmony_ci 2251bd4fe43Sopenharmony_ci VIDEO_DISPLAY_MODE_BUTT 2261bd4fe43Sopenharmony_ci} VIDEO_DISPLAY_MODE_E; 2271bd4fe43Sopenharmony_ci 2281bd4fe43Sopenharmony_citypedef struct hiLUMA_INFO_S { 2291bd4fe43Sopenharmony_ci HI_U64 u64LumaPixSum; /* Luma sum of current frame */ 2301bd4fe43Sopenharmony_ci HI_U32 u32LumaPixAverage; /* Luma average of current frame */ 2311bd4fe43Sopenharmony_ci HI_U64 u64PTS; /* PTS of current frame */ 2321bd4fe43Sopenharmony_ci} LUMA_INFO_S; 2331bd4fe43Sopenharmony_ci 2341bd4fe43Sopenharmony_ci#define LDCI_STAT_WND_X 24 2351bd4fe43Sopenharmony_ci#define LDCI_STAT_WND_Y 16 2361bd4fe43Sopenharmony_ci 2371bd4fe43Sopenharmony_ci#define DCF_DRSCRIPTION_LENGTH 32 2381bd4fe43Sopenharmony_ci#define DCF_CAPTURE_TIME_LENGTH 20 2391bd4fe43Sopenharmony_ci 2401bd4fe43Sopenharmony_citypedef struct hiISP_DCF_CONST_INFO_S { 2411bd4fe43Sopenharmony_ci HI_U8 au8ImageDescription[DCF_DRSCRIPTION_LENGTH]; /*Describes image*/ 2421bd4fe43Sopenharmony_ci HI_U8 au8Make[DCF_DRSCRIPTION_LENGTH]; /*Shows manufacturer of digital cameras*/ 2431bd4fe43Sopenharmony_ci HI_U8 au8Model[DCF_DRSCRIPTION_LENGTH]; /*Shows model number of digital cameras*/ 2441bd4fe43Sopenharmony_ci HI_U8 au8Software[DCF_DRSCRIPTION_LENGTH]; /*Shows firmware (internal software of digital cameras) version number*/ 2451bd4fe43Sopenharmony_ci 2461bd4fe43Sopenharmony_ci HI_U8 u8LightSource; /* Light source, actually this means white balance setting. '0' means unknown, 2471bd4fe43Sopenharmony_ci '1' daylight, '2' fluorescent, '3' tungsten, '10' flash, '17' standard light A, 2481bd4fe43Sopenharmony_ci '18' standard light B, '19' standard light C, '20' D55, '21' D65, '22' D75, 2491bd4fe43Sopenharmony_ci '255' other */ 2501bd4fe43Sopenharmony_ci HI_U32 u32FocalLength; /* Focal length of lens used to take image. Unit is millimeter */ 2511bd4fe43Sopenharmony_ci HI_U8 u8SceneType; /* Indicates the type of scene. Value '0x01' 2521bd4fe43Sopenharmony_ci means that the image was directly photographed. */ 2531bd4fe43Sopenharmony_ci HI_U8 u8CustomRendered; /* Indicates the use of special processing on image data, such as rendering 2541bd4fe43Sopenharmony_ci geared to output. 0 = Normal process 1 = Custom process */ 2551bd4fe43Sopenharmony_ci HI_U8 u8FocalLengthIn35mmFilm; /* Indicates the equivalent focal length assuming a 35mm film camera, in mm */ 2561bd4fe43Sopenharmony_ci HI_U8 u8SceneCaptureType; /* Indicates the type of scene that was shot. 0 = Standard, 1 = Landscape, 2571bd4fe43Sopenharmony_ci 2 = Portrait,3 = Night scene. */ 2581bd4fe43Sopenharmony_ci HI_U8 u8GainControl; /* Indicates the degree of overall image gain adjustment. 0 = None, 1 = Low gain up, 2591bd4fe43Sopenharmony_ci 2 = High gain up,3 = Low gain down,4 = High gain down. */ 2601bd4fe43Sopenharmony_ci HI_U8 u8Contrast; /* Indicates the direction of contrast processing applied by the camera when the image 2611bd4fe43Sopenharmony_ci was shot. 0 = Normal,1 = Soft,2 = Hard */ 2621bd4fe43Sopenharmony_ci HI_U8 u8Saturation; /* Indicates the direction of saturation processing applied by the camera when the image 2631bd4fe43Sopenharmony_ci was shot. 0 = Normal,1 = Low saturation,2 = High saturation */ 2641bd4fe43Sopenharmony_ci HI_U8 u8Sharpness; /* Indicates the direction of sharpness processing applied by the camera when the image 2651bd4fe43Sopenharmony_ci was shot. 0 = Normal,1 = Soft,2 = Hard . */ 2661bd4fe43Sopenharmony_ci HI_U8 u8MeteringMode; /* Exposure metering method. '0' means unknown, '1' average, '2' center weighted 2671bd4fe43Sopenharmony_ci average, '3' spot, '4' multi-spot, '5' multi-segment, '6' partial, '255' other */ 2681bd4fe43Sopenharmony_ci} ISP_DCF_CONST_INFO_S; 2691bd4fe43Sopenharmony_ci 2701bd4fe43Sopenharmony_citypedef struct hiISP_DCF_UPDATE_INFO_S { 2711bd4fe43Sopenharmony_ci HI_U32 u32ISOSpeedRatings; /* CCD sensitivity equivalent to Ag-Hr film speedrate */ 2721bd4fe43Sopenharmony_ci HI_U32 u32ExposureTime; /* Exposure time (reciprocal of shutter speed). */ 2731bd4fe43Sopenharmony_ci HI_U32 u32ExposureBiasValue; /* Exposure bias (compensation) value of taking picture */ 2741bd4fe43Sopenharmony_ci HI_U8 u8ExposureProgram; /* Exposure program that the camera used when image was taken. 2751bd4fe43Sopenharmony_ci '1' means manual control, '2' program normal, '3' aperture priority, 2761bd4fe43Sopenharmony_ci '4' shutter priority, '5' program creative (slow program), 2771bd4fe43Sopenharmony_ci '6' program action(high-speed program), '7' portrait mode, 2781bd4fe43Sopenharmony_ci '8' landscape mode */ 2791bd4fe43Sopenharmony_ci HI_U32 u32FNumber; /* The actual F-number (F-stop) of lens when the image was taken */ 2801bd4fe43Sopenharmony_ci HI_U32 u32MaxApertureValue; /* Maximum aperture value of lens. */ 2811bd4fe43Sopenharmony_ci HI_U8 u8ExposureMode; /* Indicates the exposure mode set when the image was shot. 2821bd4fe43Sopenharmony_ci 0 = Auto exposure,1 = Manual exposure, 2 = Auto bracket */ 2831bd4fe43Sopenharmony_ci HI_U8 u8WhiteBalance; /* Indicates the white balance mode set when the image was shot. 2841bd4fe43Sopenharmony_ci 0 = Auto white balance ,1 = Manual white balance */ 2851bd4fe43Sopenharmony_ci} ISP_DCF_UPDATE_INFO_S; 2861bd4fe43Sopenharmony_ci 2871bd4fe43Sopenharmony_citypedef struct hiISP_DCF_INFO_S { 2881bd4fe43Sopenharmony_ci ISP_DCF_CONST_INFO_S stIspDCFConstInfo; 2891bd4fe43Sopenharmony_ci ISP_DCF_UPDATE_INFO_S stIspDCFUpdateInfo; 2901bd4fe43Sopenharmony_ci} ISP_DCF_INFO_S; 2911bd4fe43Sopenharmony_ci 2921bd4fe43Sopenharmony_citypedef struct hiJPEG_DCF_S { 2931bd4fe43Sopenharmony_ci HI_U8 au8CaptureTime[DCF_CAPTURE_TIME_LENGTH]; /* The date and time when the picture data was generated */ 2941bd4fe43Sopenharmony_ci HI_BOOL bFlash; /* whether the picture is captured when a flash lamp is on */ 2951bd4fe43Sopenharmony_ci HI_U32 u32DigitalZoomRatio; /* Indicates the digital zoom ratio when the image was shot. 2961bd4fe43Sopenharmony_ci If the numerator of the recorded value is 0, this indicates 2971bd4fe43Sopenharmony_ci that digital zoom was not used. */ 2981bd4fe43Sopenharmony_ci ISP_DCF_INFO_S stIspDCFInfo; 2991bd4fe43Sopenharmony_ci} JPEG_DCF_S; 3001bd4fe43Sopenharmony_ci 3011bd4fe43Sopenharmony_citypedef struct hiISP_FRAME_INFO_S { 3021bd4fe43Sopenharmony_ci HI_U32 u32ISO; /* ISP internal ISO : Again*Dgain*ISPgain */ 3031bd4fe43Sopenharmony_ci HI_U32 u32ExposureTime; /* Exposure time (reciprocal of shutter speed),unit is us */ 3041bd4fe43Sopenharmony_ci HI_U32 u32IspDgain; 3051bd4fe43Sopenharmony_ci HI_U32 u32Again; 3061bd4fe43Sopenharmony_ci HI_U32 u32Dgain; 3071bd4fe43Sopenharmony_ci HI_U32 au32Ratio[3]; 3081bd4fe43Sopenharmony_ci HI_U32 u32IspNrStrength; 3091bd4fe43Sopenharmony_ci HI_U32 u32FNumber; /* The actual F-number (F-stop) of lens when the image was taken */ 3101bd4fe43Sopenharmony_ci HI_U32 u32SensorID; /* which sensor is used */ 3111bd4fe43Sopenharmony_ci HI_U32 u32SensorMode; 3121bd4fe43Sopenharmony_ci HI_U32 u32HmaxTimes; /* Sensor HmaxTimes,unit is ns */ 3131bd4fe43Sopenharmony_ci HI_U32 u32Vmax; /* Sensor Vmax,unit is line */ 3141bd4fe43Sopenharmony_ci HI_U32 u32VcNum; /* when dump wdr frame, which is long or short exposure frame. */ 3151bd4fe43Sopenharmony_ci} ISP_FRAME_INFO_S; 3161bd4fe43Sopenharmony_ci 3171bd4fe43Sopenharmony_ci#define CFACOLORPLANE (3) 3181bd4fe43Sopenharmony_ci#define DNG_NP_SIZE (6) 3191bd4fe43Sopenharmony_ci 3201bd4fe43Sopenharmony_citypedef struct hiDNG_RATIONAL_S { 3211bd4fe43Sopenharmony_ci HI_U32 u32Numerator; /* represents the numerator of a fraction, */ 3221bd4fe43Sopenharmony_ci HI_U32 u32Denominator; /* the denominator. */ 3231bd4fe43Sopenharmony_ci} DNG_RATIONAL_S; 3241bd4fe43Sopenharmony_ci 3251bd4fe43Sopenharmony_ci/* 3261bd4fe43Sopenharmony_ciDefines the structure of DNG image dynamic information 3271bd4fe43Sopenharmony_ci*/ 3281bd4fe43Sopenharmony_citypedef struct hiDNG_IMAGE_DYNAMIC_INFO_S { 3291bd4fe43Sopenharmony_ci HI_U32 au32BlackLevel[ISP_BAYER_CHN]; /* RO;Range: [0x0, 0xFFFF]; black level */ 3301bd4fe43Sopenharmony_ci DNG_RATIONAL_S astAsShotNeutral[CFACOLORPLANE]; /* specifies the selected white balance at time of capture, 3311bd4fe43Sopenharmony_ci encoded as the coordinates of a perfectly neutral color 3321bd4fe43Sopenharmony_ci in linear reference space values. */ 3331bd4fe43Sopenharmony_ci HI_DOUBLE adNoiseProfile[DNG_NP_SIZE]; /* RO;describes the amount of noise in a raw image */ 3341bd4fe43Sopenharmony_ci} DNG_IMAGE_DYNAMIC_INFO_S; 3351bd4fe43Sopenharmony_ci 3361bd4fe43Sopenharmony_citypedef struct hiISP_HDR_INFO_S { 3371bd4fe43Sopenharmony_ci HI_U32 u32ColorTemp; 3381bd4fe43Sopenharmony_ci HI_U16 au16CCM[9]; 3391bd4fe43Sopenharmony_ci HI_U8 u8Saturation; 3401bd4fe43Sopenharmony_ci} ISP_HDR_INFO_S; 3411bd4fe43Sopenharmony_ci 3421bd4fe43Sopenharmony_citypedef struct hiISP_ATTACH_INFO_S { 3431bd4fe43Sopenharmony_ci ISP_HDR_INFO_S stIspHdr; 3441bd4fe43Sopenharmony_ci HI_U32 u32ISO; 3451bd4fe43Sopenharmony_ci HI_U32 u32InitISO; 3461bd4fe43Sopenharmony_ci HI_U8 u8SnsWDRMode; 3471bd4fe43Sopenharmony_ci} ISP_ATTACH_INFO_S; 3481bd4fe43Sopenharmony_ci 3491bd4fe43Sopenharmony_citypedef enum hiFRAME_FLAG_E { 3501bd4fe43Sopenharmony_ci FRAME_FLAG_SNAP_FLASH = 0x1 << 0, 3511bd4fe43Sopenharmony_ci FRAME_FLAG_SNAP_CUR = 0x1 << 1, 3521bd4fe43Sopenharmony_ci FRAME_FLAG_SNAP_REF = 0x1 << 2, 3531bd4fe43Sopenharmony_ci FRAME_FLAG_SNAP_END = 0x1 << 31, 3541bd4fe43Sopenharmony_ci FRAME_FLAG_BUTT 3551bd4fe43Sopenharmony_ci} FRAME_FLAG_E; 3561bd4fe43Sopenharmony_ci 3571bd4fe43Sopenharmony_ci/* RGGB=4 */ 3581bd4fe43Sopenharmony_ci#define ISP_WB_GAIN_NUM 4 3591bd4fe43Sopenharmony_ci/* 3*3=9 matrix */ 3601bd4fe43Sopenharmony_ci#define ISP_CAP_CCM_NUM 9 3611bd4fe43Sopenharmony_citypedef struct hiISP_CONFIG_INFO_S { 3621bd4fe43Sopenharmony_ci HI_U32 u32ISO; 3631bd4fe43Sopenharmony_ci HI_U32 u32IspDgain; 3641bd4fe43Sopenharmony_ci HI_U32 u32ExposureTime; 3651bd4fe43Sopenharmony_ci HI_U32 au32WhiteBalanceGain[ISP_WB_GAIN_NUM]; 3661bd4fe43Sopenharmony_ci HI_U32 u32ColorTemperature; 3671bd4fe43Sopenharmony_ci HI_U16 au16CapCCM[ISP_CAP_CCM_NUM]; 3681bd4fe43Sopenharmony_ci} ISP_CONFIG_INFO_S; 3691bd4fe43Sopenharmony_ci 3701bd4fe43Sopenharmony_citypedef struct hiVIDEO_SUPPLEMENT_S { 3711bd4fe43Sopenharmony_ci HI_U64 u64JpegDCFPhyAddr; 3721bd4fe43Sopenharmony_ci HI_U64 u64IspInfoPhyAddr; 3731bd4fe43Sopenharmony_ci HI_U64 u64LowDelayPhyAddr; 3741bd4fe43Sopenharmony_ci HI_U64 u64MotionDataPhyAddr; 3751bd4fe43Sopenharmony_ci HI_U64 u64FrameDNGPhyAddr; 3761bd4fe43Sopenharmony_ci 3771bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pJpegDCFVirAddr; /* JPEG_DCF_S, used in JPEG DCF */ 3781bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pIspInfoVirAddr; /* ISP_FRAME_INFO_S, used in ISP debug, when get raw and send raw */ 3791bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pLowDelayVirAddr; /* used in low delay */ 3801bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pMotionDataVirAddr; /* vpss 3dnr use: gme motion data, Filter motion data, gyro data. */ 3811bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pFrameDNGVirAddr; 3821bd4fe43Sopenharmony_ci} VIDEO_SUPPLEMENT_S; 3831bd4fe43Sopenharmony_ci 3841bd4fe43Sopenharmony_citypedef enum hiCOLOR_GAMUT_E { 3851bd4fe43Sopenharmony_ci COLOR_GAMUT_BT601 = 0, 3861bd4fe43Sopenharmony_ci COLOR_GAMUT_BT709, 3871bd4fe43Sopenharmony_ci COLOR_GAMUT_BT2020, /* Only used for Hi3559AV100 */ 3881bd4fe43Sopenharmony_ci COLOR_GAMUT_USER, 3891bd4fe43Sopenharmony_ci COLOR_GAMUT_BUTT 3901bd4fe43Sopenharmony_ci} COLOR_GAMUT_E; 3911bd4fe43Sopenharmony_ci 3921bd4fe43Sopenharmony_citypedef struct hiISP_COLORGAMMUT_INFO_S { 3931bd4fe43Sopenharmony_ci COLOR_GAMUT_E enColorGamut; 3941bd4fe43Sopenharmony_ci} ISP_COLORGAMMUT_INFO_S; 3951bd4fe43Sopenharmony_ci 3961bd4fe43Sopenharmony_citypedef enum hiDYNAMIC_RANGE_E { 3971bd4fe43Sopenharmony_ci DYNAMIC_RANGE_SDR8 = 0, 3981bd4fe43Sopenharmony_ci DYNAMIC_RANGE_SDR10, 3991bd4fe43Sopenharmony_ci DYNAMIC_RANGE_HDR10, 4001bd4fe43Sopenharmony_ci DYNAMIC_RANGE_HLG, 4011bd4fe43Sopenharmony_ci DYNAMIC_RANGE_SLF, 4021bd4fe43Sopenharmony_ci DYNAMIC_RANGE_XDR, 4031bd4fe43Sopenharmony_ci DYNAMIC_RANGE_BUTT 4041bd4fe43Sopenharmony_ci} DYNAMIC_RANGE_E; 4051bd4fe43Sopenharmony_ci 4061bd4fe43Sopenharmony_citypedef enum hiDATA_BITWIDTH_E { 4071bd4fe43Sopenharmony_ci DATA_BITWIDTH_8 = 0, 4081bd4fe43Sopenharmony_ci DATA_BITWIDTH_10, 4091bd4fe43Sopenharmony_ci DATA_BITWIDTH_12, 4101bd4fe43Sopenharmony_ci DATA_BITWIDTH_14, 4111bd4fe43Sopenharmony_ci DATA_BITWIDTH_16, 4121bd4fe43Sopenharmony_ci DATA_BITWIDTH_BUTT 4131bd4fe43Sopenharmony_ci} DATA_BITWIDTH_E; 4141bd4fe43Sopenharmony_ci 4151bd4fe43Sopenharmony_citypedef struct hiVIDEO_FRAME_S { 4161bd4fe43Sopenharmony_ci HI_U32 u32Width; 4171bd4fe43Sopenharmony_ci HI_U32 u32Height; 4181bd4fe43Sopenharmony_ci VIDEO_FIELD_E enField; 4191bd4fe43Sopenharmony_ci PIXEL_FORMAT_E enPixelFormat; 4201bd4fe43Sopenharmony_ci VIDEO_FORMAT_E enVideoFormat; 4211bd4fe43Sopenharmony_ci COMPRESS_MODE_E enCompressMode; 4221bd4fe43Sopenharmony_ci DYNAMIC_RANGE_E enDynamicRange; 4231bd4fe43Sopenharmony_ci COLOR_GAMUT_E enColorGamut; 4241bd4fe43Sopenharmony_ci HI_U32 u32HeaderStride[3]; 4251bd4fe43Sopenharmony_ci HI_U32 u32Stride[3]; 4261bd4fe43Sopenharmony_ci HI_U32 u32ExtStride[3]; 4271bd4fe43Sopenharmony_ci 4281bd4fe43Sopenharmony_ci HI_U64 u64HeaderPhyAddr[3]; 4291bd4fe43Sopenharmony_ci HI_U64 u64HeaderVirAddr[3]; 4301bd4fe43Sopenharmony_ci HI_U64 u64PhyAddr[3]; 4311bd4fe43Sopenharmony_ci HI_U64 u64VirAddr[3]; 4321bd4fe43Sopenharmony_ci HI_U64 u64ExtPhyAddr[3]; 4331bd4fe43Sopenharmony_ci HI_U64 u64ExtVirAddr[3]; 4341bd4fe43Sopenharmony_ci 4351bd4fe43Sopenharmony_ci HI_S16 s16OffsetTop; /* top offset of show area */ 4361bd4fe43Sopenharmony_ci HI_S16 s16OffsetBottom; /* bottom offset of show area */ 4371bd4fe43Sopenharmony_ci HI_S16 s16OffsetLeft; /* left offset of show area */ 4381bd4fe43Sopenharmony_ci HI_S16 s16OffsetRight; /* right offset of show area */ 4391bd4fe43Sopenharmony_ci 4401bd4fe43Sopenharmony_ci HI_U32 u32MaxLuminance; 4411bd4fe43Sopenharmony_ci HI_U32 u32MinLuminance; 4421bd4fe43Sopenharmony_ci 4431bd4fe43Sopenharmony_ci HI_U32 u32TimeRef; 4441bd4fe43Sopenharmony_ci HI_U64 u64PTS; 4451bd4fe43Sopenharmony_ci 4461bd4fe43Sopenharmony_ci HI_U64 u64PrivateData; 4471bd4fe43Sopenharmony_ci HI_U32 u32FrameFlag; /* FRAME_FLAG_E, can be OR operation. */ 4481bd4fe43Sopenharmony_ci VIDEO_SUPPLEMENT_S stSupplement; 4491bd4fe43Sopenharmony_ci} VIDEO_FRAME_S; 4501bd4fe43Sopenharmony_ci 4511bd4fe43Sopenharmony_citypedef struct hiVIDEO_FRAME_INFO_S { 4521bd4fe43Sopenharmony_ci VIDEO_FRAME_S stVFrame; 4531bd4fe43Sopenharmony_ci HI_U32 u32PoolId; 4541bd4fe43Sopenharmony_ci MOD_ID_E enModId; 4551bd4fe43Sopenharmony_ci} VIDEO_FRAME_INFO_S; 4561bd4fe43Sopenharmony_ci 4571bd4fe43Sopenharmony_citypedef struct hiVB_CAL_CONFIG_S { 4581bd4fe43Sopenharmony_ci HI_U32 u32VBSize; 4591bd4fe43Sopenharmony_ci 4601bd4fe43Sopenharmony_ci HI_U32 u32HeadStride; 4611bd4fe43Sopenharmony_ci HI_U32 u32HeadSize; 4621bd4fe43Sopenharmony_ci HI_U32 u32HeadYSize; 4631bd4fe43Sopenharmony_ci 4641bd4fe43Sopenharmony_ci HI_U32 u32MainStride; 4651bd4fe43Sopenharmony_ci HI_U32 u32MainSize; 4661bd4fe43Sopenharmony_ci HI_U32 u32MainYSize; 4671bd4fe43Sopenharmony_ci 4681bd4fe43Sopenharmony_ci HI_U32 u32ExtStride; 4691bd4fe43Sopenharmony_ci HI_U32 u32ExtYSize; 4701bd4fe43Sopenharmony_ci} VB_CAL_CONFIG_S; 4711bd4fe43Sopenharmony_ci 4721bd4fe43Sopenharmony_citypedef struct hiBITMAP_S { 4731bd4fe43Sopenharmony_ci PIXEL_FORMAT_E enPixelFormat; /* Bitmap's pixel format */ 4741bd4fe43Sopenharmony_ci HI_U32 u32Width; /* Bitmap's width */ 4751bd4fe43Sopenharmony_ci HI_U32 u32Height; /* Bitmap's height */ 4761bd4fe43Sopenharmony_ci HI_VOID *ATTRIBUTE pData; /* Address of Bitmap's data */ 4771bd4fe43Sopenharmony_ci} BITMAP_S; 4781bd4fe43Sopenharmony_ci 4791bd4fe43Sopenharmony_citypedef struct hiLDC_ATTR_S { 4801bd4fe43Sopenharmony_ci HI_BOOL bAspect; /* RW;Range: [0, 1];Whether aspect ration is keep */ 4811bd4fe43Sopenharmony_ci HI_S32 s32XRatio; /* RW; Range: [0, 100]; field angle ration of horizontal,valid when bAspect=0. */ 4821bd4fe43Sopenharmony_ci HI_S32 s32YRatio; /* RW; Range: [0, 100]; field angle ration of vertical,valid when bAspect=0. */ 4831bd4fe43Sopenharmony_ci HI_S32 s32XYRatio; /* RW; Range: [0, 100]; field angle ration of all,valid when bAspect=1. */ 4841bd4fe43Sopenharmony_ci HI_S32 s32CenterXOffset; /* RW; Range: [-511, 511]; horizontal offset of the image distortion center 4851bd4fe43Sopenharmony_ci * relative to image center. */ 4861bd4fe43Sopenharmony_ci HI_S32 s32CenterYOffset; /* RW; Range: [-511, 511]; vertical offset of the image distortion center 4871bd4fe43Sopenharmony_ci relative to image center. */ 4881bd4fe43Sopenharmony_ci HI_S32 s32DistortionRatio; /* RW; Range: [-300, 500]; LDC Distortion ratio.When spread on, s32DistortionRatio 4891bd4fe43Sopenharmony_ci range should be [0, 500] */ 4901bd4fe43Sopenharmony_ci} LDC_ATTR_S; 4911bd4fe43Sopenharmony_ci 4921bd4fe43Sopenharmony_citypedef struct hiLDCV2_ATTR_S { 4931bd4fe43Sopenharmony_ci HI_S32 s32FocalLenX; /* RW; focal length in horizontal direction, with 2 decimal numbers */ 4941bd4fe43Sopenharmony_ci HI_S32 s32FocalLenY; /* RW; focal length in vertical direction, with 2 decimal numbers */ 4951bd4fe43Sopenharmony_ci HI_S32 s32CoorShiftX; /* RW; coordinate of image center, with 2 decimal numbers */ 4961bd4fe43Sopenharmony_ci HI_S32 s32CoorShiftY; /* RW; Y coordinate of image center, with 2 decimal numbers */ 4971bd4fe43Sopenharmony_ci HI_S32 as32SrcCaliRatio[SRC_LENS_COEF_SEG][SRC_LENS_COEF_NUM]; /* RW; lens distortion coefficients of the source 4981bd4fe43Sopenharmony_ci image, with 5 decimal numbers */ 4991bd4fe43Sopenharmony_ci HI_S32 s32SrcJunPt; /* RW; Junction Point of the two segments */ 5001bd4fe43Sopenharmony_ci HI_S32 as32DstCaliRatio[DST_LENS_COEF_SEG][DST_LENS_COEF_NUM]; /* RW; lens distortion coefficients, with 5 decimal 5011bd4fe43Sopenharmony_ci numbers */ 5021bd4fe43Sopenharmony_ci HI_S32 as32DstJunPt[DST_LENS_COEF_SEG_POINT]; /* RW; Junction Point of the three segments */ 5031bd4fe43Sopenharmony_ci HI_S32 s32MaxDu; /* RW; max undistorted distance before 3rd 5041bd4fe43Sopenharmony_ci polynomial drop, with 16bits decimal */ 5051bd4fe43Sopenharmony_ci} LDCV2_ATTR_S; 5061bd4fe43Sopenharmony_ci 5071bd4fe43Sopenharmony_citypedef enum hiLDC_VIEW_TYPE_E { 5081bd4fe43Sopenharmony_ci LDC_VIEW_TYPE_ALL = 0, /* View scale all but x and y independently, this will keep both x and y axis, 5091bd4fe43Sopenharmony_ci but corner maybe lost */ 5101bd4fe43Sopenharmony_ci LDC_VIEW_TYPE_CROP = 1, /* Not use view scale, this will lost some side and corner */ 5111bd4fe43Sopenharmony_ci 5121bd4fe43Sopenharmony_ci LDC_VIEW_TYPE_BUTT, 5131bd4fe43Sopenharmony_ci} LDC_VIEW_TYPE_E; 5141bd4fe43Sopenharmony_ci 5151bd4fe43Sopenharmony_citypedef struct hiLDCV3_ATTR_S { 5161bd4fe43Sopenharmony_ci LDC_VIEW_TYPE_E enViewType; /* RW; Range: [0, 1], 0: all mode, 1: crop mode. */ 5171bd4fe43Sopenharmony_ci HI_S32 s32CenterXOffset; /* RW; Range: ABS(s32CenterXOffset)->[0, min(128, width*0.08)], horizontal offset of 5181bd4fe43Sopenharmony_ci the image distortion center relative to image center. */ 5191bd4fe43Sopenharmony_ci HI_S32 s32CenterYOffset; /* RW; Range: ABS(s32CenterXOffset)->[0, min(128, height*0.08)], vertical offset of 5201bd4fe43Sopenharmony_ci the image distortion center relative to image center. */ 5211bd4fe43Sopenharmony_ci HI_S32 s32DistortionRatio; /* RW; Range: [-300, 300], LDC Distortion ratio. */ 5221bd4fe43Sopenharmony_ci HI_S32 s32MinRatio; /* RW; Range: [-300, 300], to remove the black region around when performing 5231bd4fe43Sopenharmony_ci pinchusion distortion correction with crop mode. */ 5241bd4fe43Sopenharmony_ci} LDCV3_ATTR_S; 5251bd4fe43Sopenharmony_ci 5261bd4fe43Sopenharmony_citypedef enum hiROTATION_VIEW_TYPE_E { 5271bd4fe43Sopenharmony_ci ROTATION_VIEW_TYPE_ALL = 0, /* View all source Image,no lose */ 5281bd4fe43Sopenharmony_ci ROTATION_VIEW_TYPE_TYPICAL = 1, /* View from rotation Image with source size,same lose */ 5291bd4fe43Sopenharmony_ci ROTATION_VIEW_TYPE_INSIDE = 2, /* View with no black section,all in dest Image */ 5301bd4fe43Sopenharmony_ci ROTATION_VIEW_TYPE_BUTT, 5311bd4fe43Sopenharmony_ci} ROTATION_VIEW_TYPE_E; 5321bd4fe43Sopenharmony_ci 5331bd4fe43Sopenharmony_citypedef struct hiROTATION_EX_S { 5341bd4fe43Sopenharmony_ci ROTATION_VIEW_TYPE_E enViewType; /* RW;Range: [0, 2];Rotation mode */ 5351bd4fe43Sopenharmony_ci HI_U32 u32Angle; /* RW;Range: [0,360];Rotation Angle:[0,360] */ 5361bd4fe43Sopenharmony_ci HI_S32 s32CenterXOffset; /* RW;Range: [-511, 511];Horizontal offset of the image distortion center 5371bd4fe43Sopenharmony_ci relative to image center. */ 5381bd4fe43Sopenharmony_ci HI_S32 s32CenterYOffset; /* RW;Range: [-511, 511];Vertical offset of the image distortion center 5391bd4fe43Sopenharmony_ci relative to image center. */ 5401bd4fe43Sopenharmony_ci SIZE_S stDestSize; /* RW;Dest size of any angle rotation */ 5411bd4fe43Sopenharmony_ci} ROTATION_EX_S; 5421bd4fe43Sopenharmony_ci 5431bd4fe43Sopenharmony_citypedef enum hiWDR_MODE_E { 5441bd4fe43Sopenharmony_ci WDR_MODE_NONE = 0, 5451bd4fe43Sopenharmony_ci WDR_MODE_BUILT_IN, 5461bd4fe43Sopenharmony_ci WDR_MODE_QUDRA, 5471bd4fe43Sopenharmony_ci 5481bd4fe43Sopenharmony_ci WDR_MODE_2To1_LINE, 5491bd4fe43Sopenharmony_ci WDR_MODE_2To1_FRAME, 5501bd4fe43Sopenharmony_ci WDR_MODE_2To1_FRAME_FULL_RATE, 5511bd4fe43Sopenharmony_ci 5521bd4fe43Sopenharmony_ci WDR_MODE_3To1_LINE, 5531bd4fe43Sopenharmony_ci WDR_MODE_3To1_FRAME, 5541bd4fe43Sopenharmony_ci WDR_MODE_3To1_FRAME_FULL_RATE, 5551bd4fe43Sopenharmony_ci 5561bd4fe43Sopenharmony_ci WDR_MODE_4To1_LINE, 5571bd4fe43Sopenharmony_ci WDR_MODE_4To1_FRAME, 5581bd4fe43Sopenharmony_ci WDR_MODE_4To1_FRAME_FULL_RATE, 5591bd4fe43Sopenharmony_ci 5601bd4fe43Sopenharmony_ci WDR_MODE_BUTT, 5611bd4fe43Sopenharmony_ci} WDR_MODE_E; 5621bd4fe43Sopenharmony_ci 5631bd4fe43Sopenharmony_citypedef enum hiFRAME_INTERRUPT_TYPE_E { 5641bd4fe43Sopenharmony_ci FRAME_INTERRUPT_START, 5651bd4fe43Sopenharmony_ci FRAME_INTERRUPT_EARLY, 5661bd4fe43Sopenharmony_ci FRAME_INTERRUPT_EARLY_END, 5671bd4fe43Sopenharmony_ci FRAME_INTERRUPT_EARLY_ONE_BUF, 5681bd4fe43Sopenharmony_ci FRAME_INTERRUPT_EARLY_END_ONE_BUF, 5691bd4fe43Sopenharmony_ci FRAME_INTERRUPT_BUTT, 5701bd4fe43Sopenharmony_ci} FRAME_INTERRUPT_TYPE_E; 5711bd4fe43Sopenharmony_ci 5721bd4fe43Sopenharmony_citypedef struct hiFRAME_INTERRUPT_ATTR_S { 5731bd4fe43Sopenharmony_ci FRAME_INTERRUPT_TYPE_E enIntType; 5741bd4fe43Sopenharmony_ci HI_U32 u32EarlyLine; 5751bd4fe43Sopenharmony_ci} FRAME_INTERRUPT_ATTR_S; 5761bd4fe43Sopenharmony_ci 5771bd4fe43Sopenharmony_ci#ifdef __cplusplus 5781bd4fe43Sopenharmony_ci#if __cplusplus 5791bd4fe43Sopenharmony_ci} 5801bd4fe43Sopenharmony_ci#endif 5811bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 5821bd4fe43Sopenharmony_ci 5831bd4fe43Sopenharmony_ci#endif /* _HI_COMM_VIDEO_H_ */ 5841bd4fe43Sopenharmony_ci 585