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.

TDA2EVM5777: Vision SDK Use case : merge three link into single link with sync

Part Number: TDA2EVM5777

Hi,

We are using Vision SDK on TDA2x board and we want to create use case where output of three algorithm link will be input of next single link with sync operation.

Please help with some example of use case implementation if possible.

Thanks,

  • Hi Rajesh,

    I have forwarded your question to a VisionSDK expert.

    Regards,
    Yordan
  • Hi Rajesh,

    Referring VisionSDK 3.0, please refer VSDK\vision_sdk\apps\src\rtos\usecases\vip_single_cam_analytics2

    Regards,
    Sujith
  • Hi ,

    While creating merge we get error in create function, please see below log for more information.

    32.367504 s: CAPTURE: Create in progress !!! [IPU1-0] 32.367748 s: CAPTURE: VIP1 Slice0 PortA capture mode is [ 8-bit] !!! [IPU1-0] 32.486915 s: CAPTURE: VIP1 Slice1 PortA capture mode is [ 8-bit] !!! [IPU1-0] 32.605990 s: CAPTURE: VIP2 Slice0 PortA capture mode is [ 8-bit] !!! [IPU1-0] 32.725218 s: CAPTURE: Create Done !!! [IPU1-0] 32.725858 s: IPC_OUT_0 : Create in progress !!! [IPU1-0] 32.726224 s: IPC_OUT_0 : Create Done !!! [IPU1-0] 32.734429 s: IPC_IN_0 : Create in progress !!! [IPU1-0] 32.735405 s: IPC_IN_0 : Create Done !!! [IPU1-0] 32.736533 s: IPC_OUT_1 : Create in progress !!! [IPU1-0] 32.736869 s: IPC_OUT_1 : Create Done !!! [IPU1-0] 32.755779 s: IPC_IN_1 : Create in progress !!! [IPU1-0] 32.756816 s: IPC_IN_1 : Create Done !!! [IPU1-0] 32.757426 s: IPC_OUT_2 : Create in progress !!! [IPU1-0] 32.757762 s: IPC_OUT_2 : Create Done !!! [HOST ] 32.726377 s: IPC_IN_0 : Create in progress !!! [HOST ] 32.726682 s: IPC_IN_0 : Create Done !!! [HOST ] 32.726834 s: ALGORITHM: Create in progress (algId = 15) !!! [HOST ] 32.726865 s: [HOST ] LLUT:0 :71 :0 [HOST ] 32.726865 s: [HOST ] LLUT:819 :359 :528 [HOST ] 32.726865 s: [HOST ] RLUT:9 :463 :0 [HOST ] 32.726895 s: [HOST ] RLUT:1239 :359 :520 [HOST ] 32.726895 s: [HOST ] CLUT:2 :0 :0 [HOST ] 32.726926 s: [HOST ] CLUT:1277 :359 :849 [HOST ] 32.730982 s: UTILS: DMA: Allocated CH (TCC) = 0 (0) [HOST ] 32.731013 s: UTILS: DMA: 0 of 8: Allocated PaRAM = 0 (0x43305600) [HOST ] 32.731013 s: UTILS: DMA: 1 of 8: Allocated PaRAM = 177 (0x43305620) [HOST ] 32.731043 s: UTILS: DMA: 2 of 8: Allocated PaRAM = 178 (0x43305640) [HOST ] 32.731074 s: UTILS: DMA: 3 of 8: Allocated PaRAM = 179 (0x43305660) [HOST ] 32.731074 s: UTILS: DMA: 4 of 8: Allocated PaRAM = 180 (0x43305680) [HOST ] 32.731104 s: UTILS: DMA: 5 of 8: Allocated PaRAM = 181 (0x433056A0) [HOST ] 32.731104 s: UTILS: DMA: 6 of 8: Allocated PaRAM = 182 (0x433056C0) [HOST ] 32.731135 s: UTILS: DMA: 7 of 8: Allocated PaRAM = 183 (0x433056E0) [HOST ] 32.734185 s: ALGORITHM: Create Done (algId = 15) !!! [HOST ] 32.734307 s: IPC_OUT_0 : Create in progress !!! [HOST ] 32.734368 s: IPC_OUT_0 : Create Done !!! [HOST ] 32.757914 s: IPC_IN_1 : Create in progress !!! [HOST ] 32.758219 s: IPC_IN_1 : Create Done !!! [HOST ] 32.758311 s: ALGORITHM: Create in progress (algId = 0) !!! [HOST ] 32.762307 s: Assertion @ Line: 415 in algorithmLink_algPluginSupport.c: status == SYSTEM_LINK_STATUS_SOK : failed !!! [DSP1 ] 32.737082 s: IPC_IN_0 : Create in progress !!! [DSP1 ] 32.737509 s: IPC_IN_0 : Create Done !!! [DSP1 ] 32.737662 s: ALGORITHM: Create in progress (algId = 38) !!! [DSP1 ] 32.737784 s: ALG_CRMODULE: DMA: Allocated CH (TCC) = 0 (0) [DSP1 ] 32.755413 s: ALGORITHM: Create Done (algId = 38) !!! [DSP1 ] 32.755596 s: IPC_OUT_0 : Create in progress !!! [DSP1 ] 32.755688 s: IPC_OUT_0 : Create Done !!!

    Could please help us , to identify issue here and how can we fix it ?

    Thanks

  • Hi Rajesh,

    Would require more information on your usecase. From the LOG it seems like IPC creation failed, probably, you are trying to connect more than 1 input into IPC.

    Can you share the usecase diagram?

    I would recommend to start another thread, as your question is answered and this error seems to be an implementation issue.

    Regards,
    Sujith
  •  Thank you for your quick response

    this is our flow

    UseCase: chains_lvdsVipMultiCamViewMosaicWithLut

    Capture -> Sync -> Alg_DmaSwMsWithLeftLut (A15) -> Dup

    Dup -> Alg_CrModule (DSP1) -> Merge

    Dup -> Alg_LrModule (DSP2) -> Merge

    Dup -> Merge

    Merge -> Alg_FrameCopy (A15) -> Display_video

    GrpxSrc -> Display_Grpx

    we have created priv.c and priv.h using usecase genration tool

    it gives me error at

    AlgorithmLink_putEmptyOutputBuffer(pObj, outputQId, pSystemBuffer);

    our querys are

    1)what other modification do we need to apply to merge 2 queue input ?

    2)do we need to make modification in algorithm file ?

  • Hi Yash,

    I guess you have 2 threads on the same topic, please use one.

    The display can't display composite buffer, after merge, the video frames are sent as composite buffer. You will have to update the frame-copy or write your own algo plugin to do that.

    I am not sure what your algo's do on DSP1/DSP2, If you objective is to display all three buffer (in a single screen). It's better you implement a simple algo-plugin which can do so. Ensure that this algo output's a video buffer.

    Please elaborate on the system that you plan to implement
    1. What is the output of Alog's on DSP1 and 2.
    2. What do you plan to do with that data
    3. Will you algo's complete execution within a frame-period time
    4. What would happen if one of the algo completes and other dosen't
    5. etc...

    Regards,
    Sujith
  • Hi,

    Please read below for some details...

    1. Capture three camera input say left, centre and right. (They will have some overlapped area between left and centre and centre and right).
    2. We do the dup to make three copy of composite buffer.
    3. We send two copy of composite buffer to DSP1 and DSP2 to find left seam line and right seam line.
    4. Once we find left seam line and right seam line we would like to use it with first dup copy of composite buffer, so we would like to merge them.
    5. After merge we would like to use three inputs as mentioned in point 4 to stitch image as a single buffer.

    Here we can not specify which algorithm we use because of some limitation.

    Assume that algorithm running on DSP will finish in time and if not then should we apply sync to make sure they are synchronised.

    I hope this will help you to understand our case.

    Thanks,

  • Hi Yash, Rajesh,

    What you are describing is very similar to demo usecase provided in TDA3x. I understand that you would be implementing similar on TDA2x.
    vision_sdk\apps\src\rtos\usecases\rear_view_panorama_tda3xx

    Presuming output of DSP (left, right seam detect would be a vector / vector table), your question would be to merge 1 composite buffer with another meta-data. With this assumption, merge dosen't really care about the content. The inputs from different queues are provided as pointer in meta data.

    It's for the algo to interpret the data.

    So, at 5, you would receive a composite buffer with one entry as another composite buffer (which contains actual video) and other 2 entries as vector/vector table.

    Regards,
    Sujith