Pipeline Library

The pipeline library uses a data structure to integrate the device, sensor, ISP context, module, control, etc., and encapsulates many functions in this structure to operate the devices, modules and controls.

You can use this library to manage the video devices, allocate video buffers, manage captured images, control the ISP hardware, and handle the sensor behavior.

Pipeline Library Data Structure

API

The libISPC.a file is required for using the following API.

Table 1. STFLIB_ISP_GetVideoDevice
Synopsis
STFLIB_ISP_GetVideoDevice(
    STF_VOID *pIspCtx,
    EN_ISP_PORT_ID enIspPortId
    );
Description Gets a specific video device handle from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enIspPortId: Video device ID
Return STF_S8: Return positive identifier if the video device is found or negative number otherwise.
Table 2. STFLIB_ISP_GetVideoDevice2
Synopsis
STFLIB_ISP_GetVideoDevice2(
    STF_VOID *pIspCtx,
    CI_BUFFTYPE enBufferType
    );
Description Gets a specific video device handle from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enBufferType: Video device buffer type (CI_TYPE_UO … CI_TYPE_Y_HIST)
Return STF_VOID *: Video device handle
Table 3. STFLIB_ISP_GetModule
Synopsis
STFLIB_ISP_GetModule(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module handle from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: Module handle
Table 4. STFLIB_ISP_GetModuleName
Synopsis
STFLIB_ISP_GetModuleName(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module name from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: Module handle
Table 5. STFLIB_ISP_GetModuleRdmaBuf
Synopsis
STFLIB_ISP_GetModuleRdmaBuf(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module Rdma buffer from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: Rdma buffer pointer
Table 6. STFLIB_ISP_GetModuleIspRdma
Synopsis
STFLIB_ISP_GetModuleIspRdma(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module IspRdma buffer from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: IspRdma handle
Table 7. STFLIB_ISP_GetModuleRdma
Synopsis
STFLIB_ISP_GetModuleRdma(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module Rdma buffer from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: Rdma handle
Table 8. STFLIB_ISP_GetModuleParam
Synopsis
STFLIB_ISP_GetModuleParam(
    STF_VOID *pIspCtx,
    EN_MODULE_ID enModuleId
    );
Description Gets a specific module parameter from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enModuleId: Module ID
Return STF_VOID *: Parameter handle
Table 9. STFLIB_ISP_GetControl
Synopsis
STFLIB_ISP_GetControl(
    STF_VOID *pIspCtx,
    EN_CONTROL_ID enControlId
    );
Description Gets a specific control handle from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enControlId: Control ID
Return STF_VOID *: Control handle
Table 10. STFLIB_ISP_GetControlName
Synopsis
STFLIB_ISP_GetControlName(
    STF_VOID *pIspCtx,
    EN_CONTROL_ID enControlId
    );
Description Gets a specific control name from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enControlId: Control ID
Return STF_VOID *: Control name
Table 11. STFLIB_ISP_GetControlParam
Synopsis
STFLIB_ISP_GetControlParam(
    STF_VOID *pIspCtx,
    EN_CONTROL_ID enControlId
    );
Description Gets a specific control paramerer from the ISP context.
Parameter
  • pIspCtx: ISP context handle
  • enControlId: Control ID
Return STF_VOID *: Parameter handle
Table 12. STFLIB_ISP_IqTuningDebugInfoEnable
Synopsis
STFLIB_ISP_IqTuningDebugInfoEnable(
    STF_VOID *pIspCtx,
    STF_BOOL8 bEnable
    );
Description Enables or disables debug information print for the IQ tuning command.
Parameter
  • pIspCtx: ISP context handle
  • bEnable: Enables or disables debug
Return
  • Success: 0
  • Failure: Other values
Table 13. STFLIB_ISP_IsIqTuningDebugInfoEnable
Synopsis
STFLIB_ISP_IsIqTuningDebugInfoEnable(
    STF_VOID *pIspCtx
    );
Description Returns the debug information print status of IQ tuning.
Parameter
  • pIspCtx: ISP context handle
  • bEnable: Enables or disables debug
Return
  • 1: Enable
  • 0: Disable
Table 14. STFLIB_ISP_PIPELINE_StructInitialize
Synopsis
STFLIB_ISP_PIPELINE_StructInitialize (
    ST_PIPELINE *pstPipeline,
    STF_U8 u8IspIdx,
    CI_CONNECTION *pCIConnection,
    ST_SENSOR *pstSensor,
    EN_MEM_TYPE enMemType,
    ST_SIZE stCaptureSize,
    STF_BOOL8 bCheckSensorResolution
    );
Description Initializes pipeline structure.
Parameter
  • pstPipeline: Pipeline handle
  • u8IspIdx: Indicates which ISP is used
  • PCIConnection: Connection handle
  • pstSensor: Sensor handle
  • enMemType: Video buffer type
  • stCaptureSize: Capture size
  • bCherckSensorResolution: Check sensor output size
Return
  • Success: 0
  • Failure: Other values
Table 15. STFLIB_ISP_StructUninitialize
Synopsis
STFLIB_ISP_PIPELINE_StructUninitialize(
    ST_PIPELINE *pstPipeline
    );
Description Frees all allocated resources from the pipeline.
Parameter
  • pstPipeline: Pipeline handle
Return
  • Success: 0
  • Failure: Other values