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.

RTOS/TDA2P-ACD: Creating Separate buffers for Overlay

Part Number: TDA2P-ACD

Tool/software: TI-RTOS

Hello All,

I am re-opening the thread on which Abhay was working of creating separate buffers for overlay. The difficulty which I am facing right now is that out of two only one overlay is being displayed correctly. Other, enabled by Flag , getting scattered on whole display distorting the other output video frame also. I would like to have inputs on the same.

Thanks & Regards,

Shantanu 

  • Hi,

    In previous thread, multiple approaches were suggested. What is the approach used?
    Can you check if you are deleting first buffer's content.

    Regards,
    Rishabh
  • Hi,
    Is there an update on this?
    Regards,
    Rishabh
  • Hi,
    Using the same draw function with two different handle as well as two flags approach is used.

    Regards,
    Shantanu
  • Hello,
    I am not sure about how to use the single video output buffer for two overlay buffers. Right now I am assigning base address of video buffer to first overlay buffer and for second I am giving the same video buffer with offset. Pl let me know if I am doing anything wrong in here.

    Regards,
    Shantanu
  • Hi,

    Your reply is confusing as you need minimum two buffers for overlay.
    Can you specify what exactly do you want to achieve and what you have tried.

    Regards,
    Rishabh
  • Yes , I have used two buffers to draw two overlay which previously were done by single buffer only. But now I am getting only one overlay correct the other overlay is getting scattered all over the screen when enabled via usecase menu. Now , I am asking about how should I use video output buffer?

    Currently , I am giving base address of video buffer[0] to first channel and video buffer[offset] to second channel.

    In initDrawObj function of overlay_drv.c ===>

    bufInfo[0].bufAddr[0] = (UInt32) pSysVidBuf->bufAddr[0];
    bufInfo[1].bufAddr[0] = pObj->info.queInfo[0].chInfo[1].startX + (UInt32) pSysVidBuf->bufAddr[0];


    In process function of overlay_drv.c ===>

    /* Assign video frame buffer address to the draw2DHndl buffer for overlaying the draw2DHndl buffer on display */ Draw2D_updateBufAddr(pObj->draw2DHndl, (UInt32 *) pSysVidBuf->bufAddr);
    Draw2D_updateBufAddr(pObj->draw2DHndlB, (UInt32 *) pSysVidBuf->bufAddr);

    Is there anything I am doing wrong or less please let me know

    Regards,
    Shantanu

  • Hi Shantanu,

    You can use the dup link and open two display links to display two buffers from single video buffer.
    Example sequence can be Capture->Dup->Display.
    I am not sure what is the overlay_drv.c you are referring to.
    Vision SDK does not have any such file.

    Regards,
    Rishabh
  • I have created an overlay link similar to GrpxLink of Vision SDK, for overlaying two different bitmap images on display. My usecase is as shown below,

    **********************************************
    NetworkRx (A15) -> Decode -> VPE -> Sync -> Dup -> Alg_A (DSP1) -> DssM2mWb -> Display_Video


    Dup -> Gate -> Alg_B (DSP1)


    OverlayLink (IPU1_0) -> Display_Grpx
    ********************************************

    Can I use composite video buffer to display two different bitmap images with two separate buffers on display?
  • No, Composite buffer cannot be used to display on two display links. Display links does not support composite buffers..

    Probably you could use dup link to duplicate overlay link and then redirect dup output to two display links. This is the way you could display single overlay on two displays..

    Rgds,

    Brijesh

  • And if you want to display two overlays, create two instances of your link and redirect it to two display links..

    Rgds,
    Brijesh
  • Hello,

    I modified the link as below,
    **********************************************
    NetworkRx (A15) -> Decode -> VPE -> Sync -> Dup -> Alg_A (DSP1) -> DssM2mWb -> Display_Video


    Dup -> Gate -> Alg_B (DSP1)


    OverlayLink (IPU1_0)-> DssM2mWb_Overlay -> Display_Grpx
    ********************************************

    so as to use composite video output buffer in OverlayLink to display two bitmap images with two separate buffers.
    Is it possible to use two instances of DssM2mWb in the same usecase?

    Regards,
    Shantanu
  • Hi Shantanu,

    You cannot use two M2M instances at same time.
    Can you use two display instances.

    Regards,
    Rishabh
  • Hello Rishabh and Brijesh,
    Yes I am getting stuck while creating the second instance in usecase. Thanks for the valuable inputs.

    I am thinking about creating two links instead to display two bitmap images.

    Regards,
    Shantanu
  • Hi Shantanu,

    In case you face any issue with two display links, please post a reply here.

    Regards,
    Rishabh
  • Hi Rishabh,

    Shantanu is working with me. I have one doubt regarding this.
    Can we use two display links with "displayId = DISPLAY_LINK_INST_DSS_GFX1" ?

    So in our usecase there will be total three display links as below,

    Display_Video (640 x 480) : with displayId = DISPLAY_LINK_INST_DSS_VID1,
    Display_Grpx1 (256 x 480): with displayId = DISPLAY_LINK_INST_DSS_GFX1 &
    Display_Grpx2 (384 x 480) : with displayId = DISPLAY_LINK_INST_DSS_GFX1

    Is this possible please suggest.

    Regards,
    Abhay

  • Hi Rishabh,

    Can you please comment on my above question.

    Thanks,
    Abhay
  • Hi Abhay,

    You have to use two different GFX links.

    Regards,
    Rishabh
  • Hi Rishabh,

    Actually I intend to use two different GFX pipelines itself. But my question here is, in vision sdk, only a single GFX driver ID i.e., VPS_DISP_INST_DSS_GFX1 is supported as compared to 3 different video drive ID's (VPS_DISP_INST_DSS_VID1, VPS_DISP_INST_DSS_VID2 & VPS_DISP_INST_DSS_VID3).
    So can I assign this same GFX ID to two different GFX pipelines ?

    Regards,
    Abhay
  • Hi Abhay,

    You have to use one video pipe id and other can be graphics id.

    Regards,
    Rishabh