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: Vision SDK-J6-Dra7XX - VPS loopback application Porting

Tool/software: TI-RTOS

Hi all,

We are using J6-dra7xx customized board. We are trying to bring up the camera using VPS loopback application.

We are using ADV7182 video decoder which is connected to VIP2-PORT. We are able to read & write the ADV7182 chip.

We have enabled free-run mode in the ADV7182 chip.  By default, when you enable free run mode, we should get blue screen. Currently we are not getting data in the display.

How to debug the data from the VIP-capture-part ? What are the registers to be monitored ?

Please support for the same.

static LpbkApp_TestParams gLpbkAppTestPrms[] =
{
{

"ADV7182 -> VIP2_S0_PORTA -> BGR888 -> DSS Video1 -> DPI LCD3",

1U, /* numCaptHandles */
1U, /* numDispHandles */
{
VPS_CAPT_VIP_MAKE_INST_ID(VPS_VIP2, VPS_VIP_S0, VPS_VIP_PORTA),
}


/* dispInstId[] */
{
VPS_DISP_INST_DSS_VID1
},

/* decDrvId[] */
{
0,
},
/* encDrvId[] */
{
0,
},
/* vencId */
{
VPS_DCTRL_DSS_VENC_LCD3
},
FALSE, /* isSdVenc */
/* captStandard FVID2_STD_720P_60, */

FVID2_STD_PAL,
/* dispStandard */
{
FVID2_STD_CUSTOM,
},

FVID2_VIFM_SCH_ES, /* captVideoIfMode */
FVID2_VIFW_8BIT, /* captVideoIfWidth */
FVID2_SF_PROGRESSIVE, /* captScanFormat */
FVID2_DF_YUV422P, /* captInDataFmt */
FVID2_DF_YUV422I_UYVY, /* captOutDataFmt */

LPBK_APP_SC_DISABLE_ALL, /* captScEnable */
800U, /* captInWidth */
480U, /* captInHeight */
800U, /* captOutWidth */
480U, /* captOutHeight */

800U, /* dispInWidth */
480U, /* dispInHeight */
800U, /* Target width */
480U, /* Target Height */

LPBK_APP_RUN_COUNT, /* runCount */
BSP_BOARD_MODE_VIDEO_BT656, /* captBoardMode */
BSP_BOARD_MODE_VIDEO_24BIT, /* dispBoardMode */
/* boardId */
(BSP_BOARD_UNKNOWN | BSP_BOARD_BASE_TDA2XX | BSP_BOARD_VISION |
BSP_BOARD_JAMR3 | BSP_BOARD_MULTIDES | BSP_BOARD_BASE_TDA3XX |
BSP_BOARD_BASE_TDA2EX)
}

Thanks & regards

Gokul

  • Hi Gokul,

    I have forwarded your question to an expert for help.

    Can you just tell which is the version of the SDK you use?

    Regards,
    Yordan

  • Hi Yordan,

    We are using Vision-SDK Version 2-12.

    Thanks & regards

    Gokul

  • Hi Gokul,

    Could you please if the VIP detect correct frame size first? For VIP2_S0_portA, the detected frame size will be reported at the offset 0x48995530. Please see if this offset has non-zero values and if it is correct frame size. 

    If this is correct, then VIP is capturing correct frames. The next step is to check if captured frame is correct with the color information. 

    Regards,

    Brijesh 

  • Hi Brijesh,

    It is 0x00000000. We probed the lines. There is no data toggling  from ADV7182 decoder chip.

    Has anyone worked on  ADV7182 decoder chip ?  We have forced the decoder chip to free-run mode.

    Thanks & regards,

    Gokul

  • Hi Gokul,


    This means ADV is not really outputting anything.
    I am not familiar with this ADV chip, so will not be able to help much.

    Regards,
    Brijesh
  • Hi Brijesh,

    we are able to bring-up the ADV7182 decoder- chip and we are getting the data in the VIP port and display it.

    In the capture callback function of VPS loopback application, we are considering only even fields
    and we are dropping the odd field for FVID2_SF_INTERLACED scan format.

    Is my understanding is correct ?

    Is it possible to use the VPE and to do the interlacing part ?

    Is there any sample application for the same ( VIP -> VPE -> Display ) ?

    Thanks & regards,
    Gokul
  • Hi Gokul,

    VIP should be able to capture both the fields. Are you saying that VIP is capturing only even fields?

    Can you please check if VIP is getting both the fields? VIP reports detected FID at the offset 0x20 from the parser base register.. Can you get me the value of this register? 

    Yes, you could use VPE to convert interlaced fields to frames, but we don't have any example as of now. 

    Regards,

    Brijesh 

  • Hi Brijesh,

    VIP is capturing the both fields. But in the callback LpbkApp_captCbFxn, only even fields are considered and odd fields are ignored.
    Can you please check this function ? Am i right ?

    We are using vip2 portA.

    Parser base register = 0x4899 5500
    Offset 20 -> 0x4899 5514 (VIP_FIQ_MASK)-> value is 003FFE8B.


    We need sample code for converting interlaced fields to frames using VPE.


    With regards,
    Gokul





    /*
    * Queue even field as frame only when we receive odd
    * field
    */
    frmInfo =
    (LpbkApp_FrameInfo *) frmList.frames[0U]->appData;
    if ((frmInfo->bufFid != frmList.frames[0U]->fid) &&
    (instObj->isDropFrmWithDriver == FALSE))
    {
    instObj->isDropFrmWithDriver = TRUE;

    /* Fields are swapped - queue drop field */
    Fvid2FrameList_init(&newFrmList);
    newFrmList.frames[0U] = &instObj->captDropFrame;
    newFrmList.numFrames++;

    retVal =
    Fvid2_queue(
    instObj->captDrvHandle,
    &newFrmList,
    0U);

    }
  • Hi Gokul,

    I think, this login enqueues field back to the driver if it is not expected field. I am not sure if it is just capturing odd fields.

    Anyways, you could change this implementation and get all the field captured in the application.

    There is an usecase in Vision SDK, which shows usage of DEI. So you could refer to this example, which internally uses DEI link and configures DEI hardware. 

    We dont have example in the BSP drivers to show DEI usage. Probably you could take the configuration from the DEI link and try in loopback example.

    Regards,

    Brijesh

  • Hi Brijesh,

    Please find my inline comments.

    I think, this login enqueues field back to the driver if it is not expected field. I am not sure if it is just capturing odd fields.

    Anyways, you could change this implementation and get all the field captured in the application.

    There is an usecase in Vision SDK, which shows usage of DEI. So you could refer to this example, which internally uses DEI link and configures DEI hardware.

    1. Can you please specify the source path for DEI usage -case  ?

    We dont have example in the BSP drivers to show DEI usage. Probably you could take the configuration from the DEI link and try in loopback example.

    2.  Please explain, what are the configuration changes from DEI link needed in loopback application ?

    3. In the last mail, I have sent register value. ( We are using vip2 portA)

    Parser base register = 0x4899 5500.

    Offset 20 -> 0x4899 5514 (VIP_FIQ_MASK)-> value is 003FFE8B.

    From the value of this register, what is observed ?

     

    Thanks & Regards,

    Gokul

  • Hi Gokul,

    You could refer to vip_single_rvc_cam_view_crc usecase, it uses DEI for deinterlacing and configures the driver.

    I actually wanted to get the value of the register VIP_OUTPUT_PORT_A_SRC_FID (0x48995520), this registers reports last few fields FIDs, so that we know VIP is receiving FIDs correctly. 

    Regards,

    Brijesh

  • Gokul,

    You could even refer to the m2mVpeScale example in BSP to get the DEI configuration.

    Regards,
    Brijesh