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: one hdmi alternate with

Part Number: TDA4VM

hi TI

    i have two graph to one HDMI show  , one use  APP_DCTRL_OVERLAY_LAYER_NUM_2  other use  APP_DCTRL_OVERLAY_LAYER_NUM_0, and The first one was blocked by the second one,

  how can i  set one Hidden when not in use 。

  • TDA4vm j721s2 cpu     and now I have two display(HDMI  DSI)  and I have 3 differenct camera from 2 CSIRX  . so I want to  set 2 different resolution camera show on HDMI , I set  differenct layer(APP_DCTRL_OVERLAY_LAYER_NUM_2   , APP_DCTRL_OVERLAY_LAYER_NUM_0) ,but I want set 720P camera on APP_DCTRL_OVERLAY_LAYER_NUM_0  ,1080P camera on APP_DCTRL_OVERLAY_LAYER_NUM_2  , I dont know how to set ok

  • Hi,

    Are you using Dual display in the vision apps? Then can you please confirm if display controller tree is properly configured for both the overlay managers? 

    Regards

    Brijesh

  • Yes I use Dual display  (1 dsi 2 hdmi) but I have 4 different camera(2M  , 1280P  1080P)  I use (1280P 1080P) on hdmi show 

  • Hi zhou,

    Then can you please check display controller tree and make sure that display pipelines are properly connected to DSI and HDMI outputs? 

    By default in SDK, we have connected two pipelines for eDP and two for HDMI output (DPI output). Your usecase might require change in this case. Depending on your requirement, please change the display controller tree in file ti-processor-sdk-rtos-j721e-evm-09_00_00_02\vision_apps\utils\dss\src\app_dss_dual_display_defaults.c.

    Regards,

    Brijesh

  • Hi  Brijesh,

          I  mean I have only DSI and HDMI, I use DSI show CSIRX1  3M camera, Its ok, butI have 1080P and 720P camera on csiRX2 show HDMI,and only one graph, how to show 2 capturenode , if I use 2 graph  to show csiRX2 (1080P 720P)  only one show ok,  I  want to use command switch camera, I dont konw how use 2 captueNode show on one graph or use two graph show one HDMI 

  • Hi zhou,

    Two graph is not an issue, as long as both are outputting to different display pipelines. so can you please check if you are different pipeId in the display params and these pipeid are connected to different output in display controller tree? 

    Regards,

    Brijesh

  • Hi  :

        

       dual_display_prm->vid_pipe_to_display_map[APP_DSS_VID_PIPE_ID_VID1]  = 0; /* map to display 0 */   HDMI 
        dual_display_prm->vid_pipe_to_display_map[APP_DSS_VID_PIPE_ID_VIDL1] = 1; /* map to display 1 */  DSI
        dual_display_prm->vid_pipe_to_display_map[APP_DSS_VID_PIPE_ID_VID2]  = 1; /* map to display 1 */   DSI
        dual_display_prm->vid_pipe_to_display_map[APP_DSS_VID_PIPE_ID_VIDL2] = 0; /* map to display 1 */  HDMI
         
    dssParams.isPipeAvailable[APP_DSS_VID_PIPE_ID_VID1] = true;
        dssParams.isPipeAvailable[APP_DSS_VID_PIPE_ID_VID2] = true;
        dssParams.isPipeAvailable[APP_DSS_VID_PIPE_ID_VIDL1] = true;
        dssParams.isPipeAvailable[APP_DSS_VID_PIPE_ID_VIDL2] = true;
      now  I use   APP_DSS_VID_PIPE_ID_VIDL2 and APP_DSS_VID_PIPE_ID_VID1 to show different camera one graph but the two camera is one csitx0 
       ,but  I use 2 diffent task run two graph  ,but is not ok  .
  • what is m2m display?  I see many m2m display。 I want to switch 2 camera (captureNode  show only one and switch I set) 

  • Hi,

    The above code just enables the input video pipelines, but does not really correct the connection. If you see the API appDctrlDualDisplayDefaultInit further down, it connects the displays to either overlay_0 or overlay_4, can you please check and make sure that this code is correct as per your requirement?

    display m2m is not for display, it actually is used to for memory 2 memory path. You can set it to false and connect 2 video pipelines to one display and other two to second display. 

    Regards,

    Brijesh

  • I have only one HDMI , I want alternate with hdmi, so I can run a camera with overlay_0 , but i also can set second camera run overlay_4 on one HDMI. 

  • hi v 100

         how to set 1920x1080  1280x720  to one superframe?  

      

  • ok, so your output is just single HDMI display ??

    I did not get overlay_4. If you are just using single HDMI display, then overlay_4 will not be used/required.

    You can just use overlay_0 for the hdmi display and then if you want to switch the camera, this needs to be done in the display node. 

    Regards,

    Brijesh

  • yes , but how to set display node?

  • What do you mean "how to set display node", do you mean how to switch display input in the display node? Then please refer to TIVX_DISPLAY_SELECT_CHANNEL control command in the display node. This allows to switch the channel in the display node. please note that this can be used only if display input is from object array.

    Regards,

    Brijesh

  • but use TIVX_DISPLAY_SELECT_CHANNEL  can select common resouliton camera, but I use two camera(1920x1080   1280x720) ,so I use 2 captureNode, how create one display

  • ok, in this case, you need to create two display node and both display nodes should be connected to different capture node, you can use different disp_id in each display node to make use of different video pipelines.. If both of them are connected to HDMI, then both inputs can be displayed on the HDMI. You can then position them in the HDMI display.. 

    Regards,

    Brijesh

  • yes , I use  two display node and both display nodes should be connected to different capture node , one use pipeId 0 ,other use pipeId3 ,this is use HDMI, but  I run 2 graph.  but its not ok , I set one task wait , other task run is ok, but I want to switch task , now its graph not ok.

  • Hi,

    Task switching is taken care by the Linux kernel, so as long as there is a blocking in the first task, the second task will get the chance to run. If you dont block first task and the priority of the first task is higher, then there might be an issue in running the second task. 

    Regards,

    Brijesh

  • hi  av:

        I want to set (1080P 720P ) superFrame , so I can set crop image to show, but I dont konw how to set 2 captueNode combinate one superFrame?

  • Hi zhou,

    In this case, you need to st the output resolution as (1920 + 12800 x 1080 and then merge two resolution using overlay manager and two video pipeline and then you can send this two capture node outputs to single display.

    Please refer to below FAQ on how to do this in DSS.

    (+) [FAQ] PROCESSOR-SDK-J721E: How to enable multiple displays by sending bigger size frames from DSS? - Processors forum - Processors - TI E2E support forums

    Regards,

    Brijesh

  • hi 100

          I  use this patch,  but  in app_init.c : I create 

     prm.display[i].display_type = APP_DSS_DEFAULT_DISPLAY_TYPE_DPI_HDMI;
     prm.display[i].timings.width = 1920U + 1280;
     prm.display[i].timings.height = 1080U;
     prm.display[i].timings.hFrontPorch = 88U;
     prm.display[i].timings.hBackPorch = 148U;
     prm.display[i].timings.hSyncLen = 44U;
     prm.display[i].timings.vFrontPorch = 4U;
     prm.display[i].timings.vBackPorch = 36U;
     prm.display[i].timings.vSyncLen = 5U;
     prm.display[i].timings.pixelClock = 148500000ULL;    

      its ok?   

  • Hi zhou

    What about the pixel clock? Currently it is set to 148.5MHz, is this sufficient for your output resolution? 

    Also what about the timing parameters? Looks like they are same as 1080p resolution, does your receiver support this timing parameters?

    Regards,

    Brijesh

  • yes, I set 148500000ULL,  prm.display[i].timings.width = 1920U + 1280; prm.display[i].timings.height = 1080U; My HDMI not show tips no resolution,

      I set 1920, and  


    displayObj->disp_params.pipeId = 0; /* pipe ID = 2 */
    displayObj->disp_params.outWidth = 960;
    displayObj->disp_params.outHeight = 720;
    displayObj->disp_params.posX = 960;
    displayObj->disp_params.posY = 0;

    if(pipeId == 3)
    {
    displayObj->disp_params.outWidth = 960;
    displayObj->disp_params.outHeight = 1080;
    displayObj->disp_params.posX = 0;
    displayObj->disp_params.posY = 0;
    }

    but tips error:

    if((dispParams->pipeCfg.inFmt.height != dispParams->pipeCfg.outHeight) ||
    (dispParams->pipeCfg.inFmt.width != dispParams->pipeCfg.outWidth))
    {
    if(TRUE == Dss_dispIsVidLInst(instObj->drvInstId))
    {
    GT_0trace(DssTrace,
    GT_ERR,
    "Scaling cant be enabled for video lite pipe \r\n");
    retVal = FVID2_EINVALID_PARAMS;
    }
    if(FALSE == dispParams->pipeCfg.scEnable)
    {
    GT_0trace(DssTrace,
    GT_ERR,
    "Scaling should be enabled \r\n");
    retVal = FVID2_EINVALID_PARAMS;
    }
    }

  • Hi zhou,

    es, I set 148500000ULL,  prm.display[i].timings.width = 1920U + 1280; prm.display[i].timings.height = 1080U; My HDMI not show tips no resolution,

    but is your HDMI display supporting (1920+1280) x 1080 resolution? 

    layObj->disp_params.pipeId = 0; /* pipe ID = 2 */
    displayObj->disp_params.outWidth = 960;
    displayObj->disp_params.outHeight = 720;
    displayObj->disp_params.posX = 960;
    displayObj->disp_params.posY = 0;

    if(pipeId == 3)
    {
    displayObj->disp_params.outWidth = 960;
    displayObj->disp_params.outHeight = 1080;
    displayObj->disp_params.posX = 0;
    displayObj->disp_params.posY = 0;
    }

    Please set pipeid value to 2 for the second input video pipe.

    Regards,

    Brijesh