Pipeline

The following code block shows the data structure for the pipeline structure.
typedef struct _ST_PIPELINE {
    STF_U8 u8IspIdx;
    ST_ISP_CTX stIspCtx;
    ST_SENSOR *pstSensor;
    CI_CONNECTION *pstCIConnection;
    STF_U16 u16MaxUoWidth;
    STF_U16 u16MaxUoHeight;
    STF_U16 u16MaxSs0Width;
    STF_U16 u16MaxSs0Height;
    STF_U16 u16MaxSs1Width;
    STF_U16 u16MaxSs1Height;
    STF_U16 u16MaxDumpWidth;
    STF_U16 u16MaxDumpHeight;
    STF_U16 u16MaxTiling_1_RdWidth;
    STF_U16 u16MaxTiling_1_RdHeight;
    STF_U16 u16MaxTiling_1_WrWidth;
    STF_U16 u16MaxTiling_1_WrHeight;
    EN_CTX_STATUS enCtxStatus;
    STF_BOOL8 bBufAllocated;
    ST_SHOT_INFO *pstAvailableShot;
    ST_SHOT_INFO *pstPendingShot;
    ST_SHOT_INFO *pstCompletedShot;
    ST_SHOT_INFO *pstOutputShot;
    ST_SHOT_INFO *pstRtspShot;
    ST_SHOT_INFO *pstTemporaryShot;
    ST_SHOT_TBL stImgShot;
    ST_SHOT_QUEUE stAvailableShotQueue;
    ST_SHOT_QUEUE stPendingShotQueue;
    ST_SHOT_QUEUE stCompletedShotQueue;
    ST_SHOT_QUEUE stOutputShotQueue;
    ST_SHOT_QUEUE stRtspShotQueue;
    ST_SHOT_QUEUE stTemporaryShotQueue;
    STF_BOOL8 bContiguousRawCaptureMode;
    ST_RAW_DUMP_TBL stRawDump;
    ST_VDEV_PTR_TBL stPipelineVdoDevTbl;
    EN_ISP_PORT enIspPort;
    STF_S8 s8PipelineModCnt;
    ST_ISP_MOD *pstPipelineMod[EN_MODULE_ID_MAX + 1];
    STF_S8 s8PipelineCtlCnt;
    ST_ISP_CTL *pstPipelineCtl[EN_CONTROL_ID_MAX + 1];
    STF_U64 u64FrameCount;

    CI_CONNECTION *(*GetConnection)(ST_PIPELINE *pstPipeline);
    ST_GLOBAL_SETUP (*GetGlobalSetup)(ST_PIPELINE *pstPipeline, STF_RESULT *pRet);
    ST_SENSOR *(*GetSensor)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetSensor)(ST_PIPELINE *pstPipeline, ST_SENSOR *pstSensor);
    ST_ISP_CTX *(*GetIspContext)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*BufAndShotInit)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*BufAllocate)(ST_PIPELINE *pstPipeline, STF_U8 u8BufCnt, STF_U8 u8BufType, STF_BOOL8 bClear, STF_BOOL8 bEnqueueBuf, ST_DMA_BUF_INFO *pstDmaBufInfo);
    STF_RESULT (*BufFree)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetPipelineReady)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*BufGetDirectly)(ST_PIPELINE *pstPipeline, STF_U8 u8Idx, EN_PIPELINE_BUF_ID enBufId, CI_MEM_PARAM **ppstMemParam);
    STF_RESULT (*ShotGetDirectly)(ST_PIPELINE *pstPipeline, STF_U8 u8Idx, ST_SHOT_INFO **ppstShotInfo);
    STF_U32 (*ShotGetAllocatedCount)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotAssignToCompleted)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO *pstShotInfo);
    STF_RESULT (*ShotSwitchToCompletedFromVDev)(ST_PIPELINE *pstPipeline, ST_VDO_MEM **ppstUoVdoMem);
    STF_RESULT (*ShotDequeueBufToCompletedFromVDev)(ST_PIPELINE *pstPipeline, ST_VDO_MEM **ppstUoVdoMem);
    STF_RESULT (*ShotDequeueBufFromVDev)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO *pstShotInfo, ST_VDO_MEM **ppstUoVdoMem);
    STF_RESULT (*ShotEnqueueBufToVDev)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO *pstShotInfo);
    STF_RESULT (*ShotPush)(ST_PIPELINE *pstPipeline, ST_SHOT_QUEUE *pstShotQueue, ST_SHOT_INFO *pstShotInfo);
    STF_RESULT (*ShotPop)(ST_PIPELINE *pstPipeline, ST_SHOT_QUEUE *pstShotQueue, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotPopLast)(ST_PIPELINE *pstPipeline, ST_SHOT_QUEUE *pstShotQueue, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotSwitchToAvailable)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToAvailableSkipBackupShot)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToPending)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToCompleted)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToOutput)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToRtsp)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchRtspToAvailable)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchToTemporary)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSwitchTemporaryToAvailable)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetAvailableCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetPendingCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetCompletedCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetOutputCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetRtspCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*ShotGetTemporaryCount)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotGetShotInfo)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetAvailableShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetPendingShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetCompletedShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetOutputShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetRtspShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetTemporaryShot)(ST_PIPELINE *pstPipeline, ST_SHOT_INFO **ppstShotInfo);
    STF_RESULT (*ShotGetStatisticsBuf)(ST_PIPELINE *pstPipeline, EN_STAT_BUF_TYPE enStatBufType, STF_BOOL8 *pbIsScDumpForAe, STF_U32 *pu32ScDumpCount, STF_VOID **ppvBuffer);
    STF_RESULT (*ShotSetOutputAndStatisticsBufInfo)(ST_PIPELINE *pstPipeline, STF_BOOL8 bIsScDumpFo-rAe);
    STF_RESULT (*ShotSetOutputAndStatisticsBuf)(ST_PIPELINE *pstPipeline, STF_BOOL8 bIsScDumpForAe);
    STF_BOOL8 (*ShotGetContiguousCaptureMode)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotSetContiguousCaptureMode)(ST_PIPELINE *pstPipeline, STF_BOOL8 bContiguousRaw-CaptureMode, STF_U16 u16BufferType, STF_U8 u8CaptureCount);
    STF_U32 (*ShotGetContiguousCaptureBufferCount)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ShotGetContiguousCaptureBuffer)(ST_PIPELINE *pstPipeline, STF_U8 u8Idx, CI_MEM_PARAM **ppstDumpMem);
    STF_RESULT (*InitVideoDevice)(ST_PIPELINE *pstPipeline, EN_ISP_PORT enIspPort, EN_SNSR_IF enSen-sorInterface, STF_U32 u32PixelFormat);
    ST_CI_DEVICE *(*GetVideoDevice)(ST_PIPELINE *pstPipeline, EN_ISP_PORT_ID enIspPortId);
    ST_CI_DEVICE *(*GetVideoDevice2)(ST_PIPELINE *pstPipeline, CI_BUFFTYPE enBufferType);
    STF_RESULT (*RegisterModule)(ST_PIPELINE *pstPipeline, ST_ISP_MOD *pstIspMod);
    STF_RESULT (*RegisterModuleById)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*RegisterEnabledModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*RegisterAllOfModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterModule)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*UnregisterDisabledModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterAllOfModules)(ST_PIPELINE *pstPipeline);
    ST_ISP_MOD *(*GetModule)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    ST_ISP_MOD *(*GetRegisteredModule)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_CHAR *(*GetModuleName)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_CHAR *(*GetRegisteredModuleName)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetModuleRdmaBuf)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetRegisteredModuleRdmaBuf)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetModuleIspRdma)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetRegisteredModuleIspRdma)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetModuleRdma)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetRegisteredModuleRdma)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetModuleParam)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_VOID *(*GetRegisteredModuleParam)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*RegisterControl)(ST_PIPELINE *pstPipeline, ST_ISP_CTL *pstIspCtl);
    STF_RESULT (*RegisterControlById)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_RESULT (*RegisterEnabledControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*RegisterAllOfControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterControl)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_RESULT (*UnregisterDisabledControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterAllOfControls)(ST_PIPELINE *pstPipeline);
    ST_ISP_CTL *(*GetControl)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    ST_ISP_CTL *(*GetRegisteredControl)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_CHAR *(*GetControlName)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_CHAR *(*GetRegisteredControlName)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_VOID *(*GetControlParam)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_VOID *(*GetRegisteredControlParam)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_RESULT (*RegisterEnabledModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*RegisterAllOfModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterDisabledModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UnregisterAllOfModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_BOOL8 (*IsModuleEnable)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*ModuleEnable)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId, STF_BOOL8 bEna-ble);
    STF_BOOL8 (*IsModuleUpdate)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*ModuleUpdate)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId, STF_BOOL8 bUpdate);
    STF_BOOL8 (*IsControlEnable)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_RESULT (*ControlEnable)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId, STF_BOOL8 bEna-ble);
    STF_RESULT (*ClearModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*PrintRegisteredModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*InitAll)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*InitAllGlobals)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*InitAllModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*InitAllControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*InitPipelineModulesAndControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetNextRdma)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateAll)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateAllGlobals)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateAllModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*CalculateAllControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateModule)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*CalculateControl)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId);
    STF_RESULT (*UpdateAllRequested)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateAllRequestedModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*CalculateAllRequestedControls)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetupAll)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetupAllGlobals)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetupAllModules)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetupModule)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId);
    STF_RESULT (*SetupRequested)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ModuleGetIqParam)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId, STF_VOID *pParamBuf, STF_U16 *pu16ParamSize);
    STF_RESULT (*ModuleSetIqParam)(ST_PIPELINE *pstPipeline, EN_MODULE_ID enModuleId, STF_VOID *pParamBuf, STF_U16 u16ParamSize);
    STF_RESULT (*ControlGetIqParam)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId, STF_VOID *pParamBuf, STF_U16 *pu16ParamSize);
    STF_RESULT (*ControlSetIqParam)(ST_PIPELINE *pstPipeline, EN_CONTROL_ID enControlId, STF_VOID *pParamBuf, STF_U16 u16ParamSize);
    STF_RESULT (*LoadBinParam)(ST_PIPELINE *pstPipeline, STF_CHAR *pszBinSettingFilename);
    STF_RESULT (*LoadBinClbrt)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*VerifyConfiguration)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*UpdateCiPipeline)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ProgramPipeline)(ST_PIPELINE *pstPipeline, STF_BOOL8 bUpdateASAP);
    STF_RESULT (*AddShots)(ST_PIPELINE *pstPipeline, STF_U8 u8Num);
    STF_RESULT (*DeleteShots)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*AcquireShot)(ST_PIPELINE *pstPipeline, ST_SHOT *pstShot, STF_BOOL8 bBlocking);
    STF_RESULT (*ProgramSpecifiedShot)(ST_PIPELINE *pstPipeline, CI_BUFFID *pstBuffId);
    STF_RESULT (*ProgramShot)(ST_PIPELINE *pstPipeline);
    STF_VOID (*ProcessShot)(ST_PIPELINE *pstPipeline, ST_SHOT *pstShot, CI_SHOT *pstCIShotBuffer);
    STF_RESULT (*ReleaseShot)(ST_PIPELINE *pstPipeline, ST_SHOT *pstShot);
    STF_RESULT (*AllocateBuffer)(ST_PIPELINE *pstPipeline, CI_BUFFTYPE enBufferType, STF_U32 u32Size, STF_U32 *pu32BufferId);
    STF_RESULT (*ImportBuffer)(ST_PIPELINE *pstPipeline, CI_BUFFTYPE enBufferType, STF_U32 u32IonFd, STF_U32 u32Size, STF_U32 *pu32BufferId);
    STF_RESULT (*DeregisterBuffer)(ST_PIPELINE *pstPipeline, STF_U32 u32BufferID);
    ST_RES (*GetUoDimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetUoDimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    ST_RES (*GetSs0Dimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetSs0Dimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    ST_RES (*GetSs1Dimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetSs1Dimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    ST_RES (*GetDumpDimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetDumpDimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    ST_RES (*GetTiling_1_ReadDimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetTiling_1_ReadDimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    ST_RES (*GetTiling_1_WriteDimensions)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetTiling_1_WriteDimensions)(ST_PIPELINE *pstPipeline, STF_U16 u16Width, STF_U16 u16Height);
    STF_RESULT (*StartCapture)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*StopCapture)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*GetFirstAvailableBuffers)(ST_PIPELINE *pstPipeline, CI_BUFFID *pstBuffId);
    STF_RESULT (*Register)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetActiveCapture)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ClearActiveCapture)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*ResetFrameCount)(ST_PIPELINE *pstPipeline);
    STF_U64 (*GetFrameCount)(ST_PIPELINE *pstPipeline);
    STF_RESULT (*SetPendingCount)(ST_PIPELINE *pstPipeline, STF_U32 u32PendingCount);
    STF_U32 (*IncPendingCount)(ST_PIPELINE *pstPipeline);
    STF_U32 (*GetCompletedCount)(ST_PIPELINE *pstPipeline, STF_BOOL8 bBlocking);
    STF_RESULT (*SetCompletedCount)(ST_PIPELINE *pstPipeline, STF_U32 u32CompletedCount);
    STF_RESULT (*GetPendingCompletedCount)(ST_PIPELINE *pstPipeline, STF_BOOL8 bBlocking, STF_BOOL8 *pbHwCapture, STF_U32 *pu32PendingCount, STF_U32 *pu32CompletedCount);
} ST_PIPELINE, *PST_PIPELINE;
The following table describes the fields in the above code block.
Table 1. Pipeline Field Description
Field Description
u8IspIdx Indicated which ISP is used
stIspCtx ISP context structure, this structure store the modules, controls, and videos handle
pstSensor Sensor handle
pstCIConnection Connection handle
u16MaxUoWidth1 Store the UO capture image width. Not used in the V4L2 driver
u16MaxUoHeight1 Store the UO capture image height. Not used in the V4L2 driver
u16MaxSs0Width1 Store the SS0 capture image width. Not used in the V4L2 driver
u16MaxSs0Height1 Store the SS0 capture image height. Not used in the V4L2 driver
u16MaxSs1Width1 Store the SS1 capture image width. Not used in the V4L2 driver
u16MaxSs1Height1 Store the SS1 capture image height. Not used in the V4L2 driver
u16MaxDumpWidth1 Store the DUMP capture image width. Not used in the V4L2 driver
u16MaxDumpHeight1 Store the DUMP capture image height. Not used in the V4L2 driver
u16MaxTiling_1_RdWidth1 Store the TIL_1_RD capture image width. Not used in the V4L2 driver
u16MaxTiling_1_RdHeight1 Store the TIL_1_RD capture image height. Not used in the V4L2 driver
u16MaxTiling_1_WrWidth1 Store the TIL_1_WR capture image width. Not used in the V4L2 driver
u16MaxTiling_1_WrHeight1 Store the TIL_1_WR capture image height. Not used in the V4L2 driver
enCtxStatus Context status, used to indicate the pipeline status
bBufAllocated Buffers allocated flag, used to indicate whether the video buffer is allocated
pstAvailableShot Point to an available shot
pstPendingShot1 Point to a pending shot. Not used in the V4L2 driver
pstCompletedShot Point to a completed shot
pstOutputShot Point to a output shot
pstRtspShot2 Point to a RTSP shot. No longer in use
pstTemporaryShot2 Point to a temporary shot. No longer in use
stImgShot Image shot table, store all of allocated image buffer
stAvailableShotQueue Available shot queue
stPendingShotQueue1 Pending shot queue. Not used in the V4L2 driver
stCompletedShotQueue Completed shot queue
stOutputShotQueue Output shot queue
stRtspShotQueue2 RTSP shot queue. No longer in use
stTemporaryShotQueue2 Temporary shot queue. No longer in use
stRawDump1 Contiguous RAW image dump buffers table. Not used in the V4L2 driver
stPipelineVdoDevTbl Video device table, which stores video devices registered to the pipeline
enIspPort Video device flag, which stores video devices registered to the pipeline
s8PipelineModCnt The number of modules registered to the pipeline
pstPipelineMod Module table, which stores modules registered to the pipeline
s8PipelineCtlCnt The number of controls registered to the pipeline
pstPipelineCtl Control table, which stores controls registered to the pipeline
u64FrameCount1 Frame count. Not used in the V4L2 driver
*GetConnection Get the ISP driver connection handle
*GetGlobalSetup1 Get all of image buffer information. Not used in the V4L2 driver
*GetSensor Get the sensor handle
*SetSensor Set the sensor handle to the pipeline
*GetIspContext Get the ISP context handle
*BufAndShotInit Initialize all of buffer, shot pointers and queues
*BufAllocate Allocate video buffers for video device
*BufFree Free the allocated video buffers
*SetPipelineReady Change pipeline status to ready status
*BufGetDirectly Get a specific buffer from the video device
*ShotGetDirectly Get a specific shot from the image shot table
*ShotGetAllocatedCount Get count of allocated shot buffers
*ShotAssignToCompleted Assign a shot to completed shot pointer
*ShotSwitchToCompletedFromVDev Pop buffer from the video devices and pack them to a shot, and then push this shot into the completed queue
*ShotDequeueBufToCompletedFromVDev Dequeue buffer from the video devices and pack them to a shot, and then push this shot into the completed queue
*ShotDequeueBufFromVDev Dequeue buffer from the video devices and pack them to a shot
*ShotEnqueueBufToVDev Enqueue buffer from shot to video devices
*ShotPush Push a shot into a queue
*ShotPop Pop a shot from a queue
*ShotPopLast2 Pop the last shot from a queue. No longer in use
*ShotSwitchToAvailable Switch shot from output queue to available queue, and assign this shot to the output pointer
*ShotSwitchToAvailableSkipBackupShot1 Switch shot from output queue to available queue. Not used in the V4L2
*ShotSwitchToPending1 Switch shot from available queue to pending queue, and assign this shot to the available pointer. Not used in the V4L2 driver
*ShotSwitchToCompleted1 Switch shot from pending queue to completed queue, and assign this shot to the pending pointer. Not used in the V4L2 driver
*ShotSwitchToOutput1 Switch shot from completed queue to output queue, and assign this shot to the completed pointer. Not used in the V4L2 driver
*ShotSwitchToRtsp2 Switch shot from output queue to RTSP queue, and a assign this shot to the RTSP pointer. No longer in use
*ShotSwitchRtspToAvailable2 Switch shot from RTSP queue to Available queue. No longer in use
*ShotSwitchToTemporary2 Switch shot from output queue to temporary queue, and assign this shot to the temporary pointer. No longer in use
*ShotSwitchTemporaryToAvailable2 Switch shot from temporary queue to Available queue. No longer in use
*ShotGetAvailableCount1 Get available shot count. Not used in the V4L2 driver
*ShotGetPendingCount1 Get pending shot count. Not used in the V4L2 driver
*ShotGetCompletedCount1 Get completed shot count. Not used in the V4L2 driver
*ShotGetOutputCount1 Get output shot count. Not used in the V4L2 driver
*ShotGetRtspCount2 Get RTSP shot count. No longer in use
*ShotGetTemporaryCount2 Get temporary shot count. No longer in use
*ShotGetShotInfo Get a shot information
*ShotGetAvailableShot1 Get an available shot. Not used in the V4L2 driver
*ShotGetPendingShot1 Get a pending shot. Not used in the V4L2 driver
*ShotGetCompletedShot1 Get a completed shot. Not used in the V4L2 driver
*ShotGetOutputShot1 Get an output shot. Not used in the V4L2 driver
*ShotGetRtspShot2 Get a RTSP shot. No longer in use
*ShotGetTemporaryShot2 Get a temporary shot. No longer in use
*ShotGetStatisticsBuf Get a statistics buffer from completed shot
*ShotSetOutputAndStatisticsBufInfo1 Set output and statistics buffer information to related modules. Not used in the V4L2 driver
*ShotSetOutputAndStatisticsBuf1 Set output and statistics buffer to related modules. Not used in the V4L2 driver
*ShotGetContiguousCaptureMode1 Get contiguous capture mode. Not used in the V4L2 driver
*ShotSetContiguousCaptureMode1 Set contiguous capture mode. Not used in the V4L2 driver
*ShotGetContiguousCaptureBufferCount1 Get contiguous capture buffer count. Not used in the V4L2 driver
*ShotGetContiguousCaptureBuffer Get a specific contiguous capture buffer. Not used in the V4L2 driver
*InitVideoDevice Video devices initialization
*GetVideoDevice Get a specific video device handle from the ISP context
*GetVideoDevice2 Get a specific video device handle from the ISP context
*RegisterModule Register a module in the pipeline
*RegisterModuleById Use module ID to register a module in the pipeline
*RegisterEnabledModules Register all enabled modules in the pipeline
*RegisterAllOfModules Register all the modules in the pipeline
*UnregisterModule Unregister a module from the pipeline
*UnregisterDisabledModules Unregister all disabled modules from the pipeline
*UnregisterAllOfModules Unregister all the modules from the pipeline
*GetModule Get a specific module handle form the ISP context
*GetRegisteredModule Get a specific registered module handle form the pipeline
*GetModuleName Get a specific module name form the ISP context
*GetRegisteredModuleName Get a specific registered module name form the pipeline
*GetModuleRdmaBuf Get a specific module Rdma buffer form the ISP context
*GetRegisteredModuleRdmaBuf Get a specific registered module Rdma buffer form the pipeline
*GetModuleIspRdma Get a specific module IspRdma form the ISP context
*GetRegisteredModuleIspRdma Get a specific registered module IspRdma form the pipeline
*GetModuleRdma Get a specific module Rdma form the ISP context
*GetRegisteredModuleRdma Get a specific registered module Rdma form the pipeline
*GetModuleParam Get a specific module parameter form the ISP context
*GetRegisteredModuleParam Get a specific registered module parameter form the pipeline
*RegisterControl Register a control in the pipeline
*RegisterControlById Use control ID to register a control in the pipeline
*RegisterEnabledControls Register all enabled controls in the pipeline
*RegisterAllOfControls Register all of controls in the pipeline
*UnregisterControl Unregister a control from the pipeline
*UnregisterDisabledControls Unregister all disabled controls from the pipeline
*UnregisterAllOfControls Unregister all of controls from the pipeline
*GetControl Get a specific control handle form the ISP context
*GetRegisteredControl Get a specific registered control handle form the pipeline
*GetControlName Get a specific control name form the ISP context
*GetRegisteredControlName Get a specific registered control name form the pipeline
*GetControlParam Get a specific control parameter form the ISP context
*GetRegisteredControlParam Get a specific registered control parameter form the pipeline
*RegisterEnabledModulesAndControls Register all enabled modules and controls in the pipeline
*RegisterAllOfModulesAndControls Register all the modules and controls in the pipeline
*UnregisterDisabledModulesAndControls Unregister all disabled modules and controls from the pipeline
*UnregisterAllOfModulesAndControls Unregister all the modules and controls from the pipeline
*IsModuleEnable Return a specific module enable status from the pipeline
*ModuleEnable Enable or disable a specific module from the pipeline
*IsModuleUpdate Return a specific module update status from the pipeline
*ModuleUpdate Enable or disable the update function of specific module from the pipeline
*IsControlEnable Return a specific control enable status from the pipeline
*ControlEnable Enable or disable a specific control from the pipeline
*ClearModulesAndControls Remove and destroy all the registered modules and controls in the pipeline
*PrintRegisteredModulesAndControls Print all modules and controls name that registered in the pipeline
*InitAll Initialize all modules and controls form the ISP context
*InitAllGlobals Initialize all global modules form the ISP context
*InitAllModules Initialize all modules form the ISP context
*InitAllControls Initialize all controls form the ISP context
*InitPipelineModulesAndControls Initialize all modules and controls registered in the pipeline
*SetNextRdma Initialize all modules’ next Rdma chain form the pipeline
*UpdateAll Update all modules in the ISP context including global
*UpdateAllGlobals Update only the global modules in the ISP context
*UpdateAllModules Update all modules but the global ones in the ISP context
*CalculateAllControls Calculate all controls in the ISP context.
*UpdateModule Update a specific module Param to Rdma in the ISP context
*CalculateControl Calculate a specific control Param to module Param in the ISP context
*UpdateAllRequested Update all modules and controls' Param to Rdma with the updated flag activated from the pipeline
*UpdateAllRequestedModules Update all modules’ Param to Rdma with the updated flag activated from the pipeline
*CalculateAllRequestedControls Calculate all controls’ Param to module Param with the enabled flag activated from the pipeline
*SetupAll Setup all modules in the ISP context
*SetupAllGlobals Setup only the global modules in the ISP context
*SetupAllModules Setup all modules but the global ones in the ISP context
*SetupModule Setup a specific module in the ISP context
*SetupRequested Setup all modules with the updated flag activated from the pipeline
*ModuleGetIqParam Get a specific module parameter from the pipeline
*ModuleSetIqParam Set a specific module parameter from the pipeline
*ControlGetIqParam Get a specific control parameter from the pipeline
*ControlSetIqParam Set a specific control parameter from the pipeline
*LoadBinParam Process binary parameters file
*LoadBinClbrt Loop each module to load binary calibration file if needed
*VerifyConfiguration2 Verify if the configuration is correct for the current HW version. No longer in use
*UpdateCiPipeline1 Update CI_PIPELINE information. Not used in the V4L2 driver
*ProgramPipeline Program current configuration in the pipeline, and change the pipeline status to setup status
*AddShots1 Add several Shots to the Pipeline. Not used in the V4L2 driver
*DeleteShots1 Delete all allocated Shots of the Pipeline - buffers are unaffected. Not used in the V4L2 driver
*AcquireShot1 Retrieve a captured shot from the pipeline. The Shot must be released later. Not used in the V4L2 driver
*ProgramSpecifiedShot1 This function programs shot with provided buffer id. Not used in the V4L2 driver
*ProgramShot1 Program a shot to be captured in the pipeline (takes 1st available Shot and 1st available Buffers). Not used in the V4L2 driver
*ProcessShot1 Configure a captured shot from the pipeline. Not used in the V4L2 driver
*ReleaseShot1 Release a previously captured and retrieved shot. Not used in the V4L2 driver
*AllocateBuffer1 Allocate 1 buffer for the selected output (pipeline must be preconfigured). Not used in the V4L2 driver
*ImportBuffer1 This function imports a buffer. Not used in the V4L2 driver
*DeregisterBuffer1 Unregister an allocated or imported buffer (The pipeline must be stopped). Not used in the V4L2 driver
*GetUoDimensions1 Get the UO output maximum dimensions. Not used in the V4L2 driver
*SetUoDimensions1 Change the UO output maximum dimensions. Not used in the V4L2 driver
*GetSs0Dimensions1 Get the SS0 output maximum dimensions. Not used in the V4L2 driver
*SetSs0Dimensions1 Change the SS0 output maximum dimensions. Not used in the V4L2 driver
*GetSs1Dimensions1 Get the SS1 output maximum dimensions. Not used in the V4L2 driver
*SetSs1Dimensions1 Change the SS1 output maximum dimensions. Not used in the V4L2 driver
*GetDumpDimensions1 Get the DUMP output maximum dimensions. Not used in the V4L2 driver
*SetDumpDimensions1 Change the DUMP output maximum dimensions. Not used in the V4L2 driver
*GetTiling_1_ReadDimensions1 Get the TIL_1_RD output maximum dimensions. Not used in the V4L2 driver
*SetTiling_1_ReadDimensions1 Change the TIL_1_RD output maximum dimensions. Not used in the V4L2 driver
*GetTiling_1_WriteDimensions1 Get the TIL_1_WR output maximum dimensions. Not used in the V4L2 driver
*SetTiling_1_WriteDimensions1 Change the TIL_1_WR output maximum dimensions. Not used in the V4L2 driver
*StartCapture Reserve the hardware for capturing
*StopCapture Stop the capture process releasing the HW
*GetFirstAvailableBuffers1 Get the identifier of the 1st available buffers to run with the current configuration. Not used in the V4L2 driver
*Register Register the pipeline configuration into kernel driver, and change the pipeline status to setup status
*SetActiveCapture Set the active capture to kernel driver
*ClearActiveCapture Clear the active capture to kernel driver
*ResetFrameCount1 Reset the ISP total frame count. Not used in the V4L2 driver
*GetFrameCount1 Get the ISP total frame count. Not used in the V4L2 driver
*SetPendingCount1 Set the ISP pending count. Not used in the V4L2 driver
*IncPendingCount1 Increase the ISP pending count. Not used in the V4L2 driver
*GetCompletedCount1 Get the ISP completed count. Not used in the V4L2 driver
*SetCompletedCount1 Set the ISP completed count. Not used in the V4L2 driver
*GetPendingCompletedCount1 Get the ISP pending and completed count. Not used in the V4L2 driver
Note:
  1. The field items are for proprietary driver only.

  2. The field items are no longer in use.