PDK API Guide for J721E
vhwa_m2mViss.h File Reference

Introduction

Defines the structures / control operations that could be used to configure / control VISS M2M driver.

Typical Application for the VISS M2M driver is as shown below.

Vhwa_m2mVissInit || Vhwa_m2mVissAllocSl2 (Optional, if not called, first open allocates) || FVID2_Create || sets VISS configuration || FVID2_ProcessReq || Wait for completion callback || FVID2_GetProcessedReq || FVID2_close || FVID2_deInit

Go to the source code of this file.

Data Structures

struct  Vhwa_M2mVissInitParams
 Init Parameters for VISS M2M Driver. More...
 
struct  Vhwa_M2mVissCreateArgs
 
struct  Vhwa_M2mVissSl2Params
 
struct  Vhwa_M2mVissOutputParams
 
struct  Vhwa_M2mVissParams
 Connfiguration parameters of VISS. More...
 
struct  Vhwa_M2mVissConfigAppBuff
 

Macros

#define VHWA_M2M_VISS_DRV_INST0   (0U)
 VISS Driver Instance ID. More...
 
#define VHWA_M2M_VISS_DRV_MAX_INST   (1U)
 Maximum VISS driver Instances. More...
 
#define VHWA_M2M_VISS_MAX_HANDLES   (8u)
 Max Number of handles supported by VISS M2M Driver. More...
 
#define VHWA_M2M_VISS_INPUT_IDX0   (0U)
 
#define VHWA_M2M_VISS_INPUT_IDX1   (1U)
 
#define VHWA_M2M_VISS_INPUT_IDX2   (2U)
 
#define VHWA_M2M_VISS_MAX_INPUTS   (3U)
 
Ioctls for the VISS memory to memory driver

Input/Output control MACRO's for VISS memory to memory module

#define IOCTL_VHWA_M2M_VISS_SET_PARAMS   (VHWA_IOCTL_M2M_VISS_IOCTL_BASE)
 IOCTL for setting VISS configuration. This IOCTL is used to select the number input, outputs and any internal path related configuration, it has flags to enable/disable, which alters blanking requirement. It is not used for confiugring individual VISS sub-modules. Typically used just after the create to select inputs, outputs and paths. Refer to Vhwa_M2mVissParams. More...
 
#define IOCTL_VHWA_M2M_VISS_REGISTER_ERR_CB
 IOCTL for enabling error events and registering callbacks for the same. Refer to Ldc_ErrEventParams. More...
 
#define IOCTL_VHWA_M2M_VISS_SET_HTS_LIMIT
 IOCTL for enabling and setting HTS limiter. This is used to slowed down the HTS by introducing clock cycles between internal start signals. Refer to Vhwa_HtsLimiter. More...
 
#define IOCTL_VHWA_M2M_VISS_SYNC_START
 IOCTL to sync start each module This IOCTL doesn't configure any register and only enable pipeline to start processing. More...
 
#define IOCTL_VHWA_M2M_VISS_GET_PERFORMANCE
 IOCTL for getting module's performance numbers for the last frame submitted. More...
 
#define IOCTL_VHWA_M2M_VISS_GET_BUFF_INFO
 Get Config UDMA buffer information. More...
 
#define IOCTL_VHWA_M2M_VISS_SET_BUFF_INFO
 Set Config UDMA buffer information. More...
 
#define VHWA_M2M_VISS_OUT_YUV420_12B_IDX   (0U)
 
#define VHWA_M2M_VISS_OUT_GREY_12B_IDX   (0U)
 
#define VHWA_M2M_VISS_OUT_COLOR_12B_IDX   (0U)
 
#define VHWA_M2M_VISS_OUT_LUMA_12B_IDX   (0U)
 
#define VHWA_M2M_VISS_OUT_YUV422_12B_IDX   (0U)
 
#define VHWA_M2M_VISS_OUT_CFA_C1_12B_IDX   (1U)
 
#define VHWA_M2M_VISS_OUT_CHROMA_12B_IDX   (1U)
 
#define VHWA_M2M_VISS_OUT_YUV420_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_YUV422_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_RGB888_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_GREY_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_COLOR_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_CFA_C2_12B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_LUMA_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_RED_8B_IDX   (2U)
 
#define VHWA_M2M_VISS_OUT_CFA_C3_12B_IDX   (3U)
 
#define VHWA_M2M_VISS_OUT_CHROMA_8B_IDX   (3U)
 
#define VHWA_M2M_VISS_OUT_GREEN_8B_IDX   (3U)
 
#define VHWA_M2M_VISS_OUT_SATURA_8B_IDX   (4U)
 
#define VHWA_M2M_VISS_OUT_CFA_C4_12B_IDX   (4U)
 
#define VHWA_M2M_VISS_OUT_BLUE_8B_IDX   (4U)
 
#define VHWA_M2M_VISS_OUT_H3A_IDX   (5U)
 
#define VHWA_M2M_VISS_MAX_OUTPUTS   (6U)
 
VISS input mode

Decides the number of input channels required, essentially decides the merge mode.

Caution: This macro values are used for internal calculations.

#define VHWA_M2M_VISS_MODE_SINGLE_FRAME_INPUT   (1U)
 
#define VHWA_M2M_VISS_MODE_TWO_FRAME_MERGE   (2U)
 
#define VHWA_M2M_VISS_MODE_THREE_FRAME_MERGE   (3U)
 
#define VHWA_M2M_VISS_MODE_MAX   (4U)
 
LDC Luma Interpolation type

Enum to define Luma interpolation type. For all other components, i.e. chroma or bayer, bilinear interpolation is used.

#define VHWA_M2M_VISS_EE_DISABLE   (0x0U)
 
#define VHWA_M2M_VISS_EE_ON_LUMA12   (0x1U)
 
#define VHWA_M2M_VISS_EE_ON_LUMA8   (0x2U)
 
#define VHWA_M2M_VISS_EE_MAX   (0xFFFFU)
 

Functions

static void Vhwa_m2mVissInitParamsInit (Vhwa_M2mVissInitParams *prms)
 This function should be used to initialize variable of type Vhwa_M2mVissInitParams. More...
 
static void Vhwa_m2mVissCreateArgsInit (Vhwa_M2mVissCreateArgs *prms)
 This function should be used to initialize variable of type Vhwa_M2mVissCreateArgs. More...
 
static void Vhwa_m2mVissParamsInit (Vhwa_M2mVissParams *prms)
 This function should be used to initialize variable of type Vhwa_M2mVissParams. More...
 
static void Vhwa_m2mVissSl2ParamsInit (Vhwa_M2mVissSl2Params *prms)
 This function should be used to initialize variable of type Vhwa_M2mVissSl2Params. More...
 
int32_t Vhwa_m2mVissInit (Vhwa_M2mVissInitParams *initPrms)
 Function to initialize VISS with provided init parameters. More...
 
void Vhwa_m2mVissDeInit (void)
 Function to deinitialize, cleans up the internal data structures. More...
 
int32_t Vhwa_m2mVissAllocSl2 (const Vhwa_M2mVissSl2Params *sl2AllocPrms)
 Function to allocate Sl2 memory for the output buffers. More...
 
void Vhwa_m2mVissFreeSl2 (void)
 Function to free allocated SL2. More...