This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: How does the multi cam application recognize which ports have cameras?

Part Number: TDA4VM

Hello,

I am analyzing multi_cam application with the SDK 7.1.

I did not specify which ports have cameras but the application could recognize the connection.

It looks like that the application checks port one by one.

If somebody know how the multi cam application knows which ports have cameras, it will be a great help.

Best regards,

  • Hi,

    In SDK7.1, i think if you use 4 channels, the application assumes it is on the first port and for more than 4 channels, it assumes both the ports.. 

    Regards,

    Brijesh

  • Hello Brijesh,

    Thank you for your advice. I want to use six channels. But the initialization code creates objects according to a count number, but there was no port number or something about the physical connection. It looks like plug & play, but I doubt it. I want to know how the multi-cam application maps the order of the sensor and the physical port.

    Best regards,

  • Hello Seunghyun Roh,

    How are these six channels connected to the CSIRX? Are you using fusion board with imx390 camera? 

    In this case, first 4 channels would be captured from port0 and rest two will be captured from port1.

    Regards,

    Brijesh

  • Hello Brijesh,

    Oh, thank you for super fast advice. I am using fusion board with imx390 cameras.

    As you said, there are two ports, but I did not configure any port.

    I wonder how the application selects the right port between port0 and port1.

    It looks like the application just initializes any number of cameras between 1 and 8, then the cameras start streaming.

    Best regards,

  • Hello Seunghyun Roh,

    Not really, we need to provide the number of camera to work with and then application selects the ports accordingly. If the number of cameras are less than or equal to 4, then it just uses port0, but if the number of cameras are more than 4, then it uses port0 and port1 both.

    Regards,

    Brijesh

  • Thank you very much, I will try. Slight smile

  • Hello Brijesh,

    I have one more question while experimenting.

    Port 0 - ch1 : camera type 1

              - ch2 : camera type 1

              - ch3 : camera type 1

              - ch4 : camera type 1

    Port 1 - ch1 : camera type 2

              - ch2 : camera type 1

    I wanted to use cameras from port 1, ignoring cameras from port 0; even cameras are connected to port 0.

    Is there a way to initialize port 1 only?

    Since the port1-ch2 has same type of camera, the application initialize the camera with port0-ch1.

    Best regards,

  • Hello Seunghyun Roh,

    Do you mean to extract port1-ch1 camera or just want to use port1-ch1 camera? 

    If the camera type, ie data type, fps etc, are different, then it is recommended to create separate instance of CSIRX node and capture it using this instance.. 

    In this above case, we can have one CSIRX instance capturing all camera of type-1 and second CSIRX node instance capturing port1-ch1 camera.. 

    But please note this would require changes in the current multi-camera example.. 

    Regards,

    Brijesh

  • Hello Brijesh,

    Thank you for super fast advice. Slight smile

    I wanted to use only port 1 regardless of port 0's connections or configuration.

    There was no specific port designation, so I wondered how to skip port 0.

    Secondly, as you advised, even if I skip port 0, port 1 will have two different types of sensors, so I may need to create two CSIRX instances. If my understanding is wrong, let me know, please.

    Best regards,

  • Hello Seunghyun Roh,

    Yes, your above understanding is correct.

    In multi-camera example, if you just want to use port1, it would require changes in the application.. 

    Regards,

    Brijesh

  • Hello Brijesh,

    Great, thank you.

    When I checked the code in app_capture_module.c. This function restricts the number of sensor objects to 4 per capture node.

    I need 2 capture nodes if I use 5 identical sensors(2MP). + I will need 1 more node for 1 different sensor(8MP). Then I will need 3 capture nodes.

    - Is my understanding correct?

    - Can I create 3 capture nodes? There is no code for more than 2 -> I cannot create 3 nodes, in my opinion.

    vx_status app_init_capture(vx_context context, CaptureObj *captureObj, SensorObj *sensorObj, char *objName, int32_t bufq_depth)
    {
    ...
    if(sensorObj->num_cameras_enabled > 4)
    {
    num_capt_instances= 2;
    }
    else
    {
    num_capt_instances= 1;
    }
    Thank you very much.
  • Hi Seunghyun Roh,

    I need 2 capture nodes if I use 5 identical sensors(2MP). + I will need 1 more node for 1 different sensor(8MP). Then I will need 3 capture nodes.

    - Is my understanding correct?

    No, you will require two capture nodes in this case. one for 5 identical camera and one for 8MP camera.

    - Can I create 3 capture nodes? There is no code for more than 2 -> I cannot create 3 nodes, in my opinion.

    Yes, it is possible to create 3 camera nodes. Please refer to sample example in \ti-processor-sdk-rtos-j721e-evm-08_02_00_05\tiovx\kernels_j7\hwa\test\test_csitx_csirx.c file. This example creates multiple instances of the capture node.

    Regards,

    Brijesh