SIPL Multi Instances#

The nvsipl_multicast application supports creating multiple INvSIPLCamera instances via creating mulitple channels.

Different INvSIPLCamera instances manage different camera modules groups, which can start or stop at different times.

image1

image2

Functionality and Behavior#

  1. Supports launching different camera modules defined in the dynamic platform configuration using the following command (using multiple -c and -m parameters):

    Dynamic platform configurations:

    ./nvsipl_multicast -c SG3_ISX031_H190X_YUV_8_CPHY_x4 -m "1 0 0 0" -p "cuda" \
                       -c R0SIM728S2RU2120NB1_MAX96724_CPHY_x4 -m "0 0 1" -p "cuda"
    

    Static platform configurations:

    ./nvsipl_multicast -t SG3_ISX031_H190X_YUV_8_CPHY_x2 -p "cuda" \
                       -t R0SIM728S2RU2120NB1_MAX96724_CPHY_x4 -p "cuda"
    

    Note

    It is not possible to use both dynamic and static platform configurations simultaneously.

    Note

    Multiple channels are only supported in intra-process scenarios.

    Note

    Multiple channels cannot be created using the same platform configuration name. If camera modules share the same configuration, group them into one channel.

  2. Supports quick-starting cameras independently by launching different platform configurations at different times.

  3. Supports restarting cameras with different platform configurations independently, without affecting others.

Control Flow#

The following diagram shows the SIPL multi-instance control flow:

image3

Data Flow#

The following diagram illustrates the SIPL multi-instance data flow:

image4

Error Handling#

The SIPL DevblkNotificationHandler receives notifications from the SIPLNotificationQueue and retrieves deserializer or camera module-related error information from NvSiplCamera. Then, the OnError callback is triggered from CSIPLModule to CChannel and CManager.

image5

Constraints#

  1. The SIPL module supports only separate instances of camera modules in different groups. It cannot create multiple instances within a single group.

  2. The encoder module requires input data in YUV420SP block linear format. If using a YUV camera, convert the data from pitch linear to block linear before sending it to the encoder.