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.