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.
| 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:
-
The field items are for proprietary driver only.
-
The field items are no longer in use.
