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.

VFCC firmware without external TVP7002 decoder

Expert 2030 points
Other Parts Discussed in Thread: TVP7002

In our custom board we don't have TVP7002 decoder and have no need for it. However VFCC in HDVPSS firmware has i2c calls to initilaize this decoder and will hang if we run it on our custom board. 

Since we are planning to use openmax, is there another version of HDVPSS without any video decoder i2c calls, as we will be getting BT565 from the FPGA directly.

This page mentions customizing v4l driver for linux video capture.

I am looking for a similar one targeting decoder customization for openmax VFCC.

Thanks

RV

  • RV

    By design, VFCC does not configure the external decoders. It just configures the VIP only.

    Another component such as OMX.TI.VPSSM3.CTRL.TVP does the configuration of the TVP. In your application, if you do not create the TVP control component, then you can have a independently controlled decoder.

    regards,

    Tarakesh.

  • Dear Tarakesh,

    IIUC if I use VIN0 with a digital parallel input (24 bit RGB + H/VSYNC + DE) I should just dont use the TVP component and do the capture?

    What about the VIN0 configuration?

    I open another question in this forum (here: http://e2e.ti.com/support/embedded/linux/f/354/t/170685.aspx) to ask how (if it's possibile) configure the VIN0 port (e.g. H/VSYNC polarity).

    Can you, at least, tell us which is the default configuration of VIN0 made by VFCC?

    IOW: if I just bypass TVP and go directly to the VIP, what kind of signal does it expect?

    Best Regards and thanks in advance for any information,

    Andrea

  • Andrea,

    VFCC does not assume any configuration. Immediately, after the component is created all configurations have to be done by the app.

    Following snippet is from capture_encode example:

    OMX_ERRORTYPE IL_ClientSetCaptureParams (IL_Client *pAppData)
    {

      OMX_PARAM_VFCC_HWPORT_PROPERTIES sHwPortParam;

      OMX_PARAM_VFCC_HWPORT_ID sHwPortId;

      OMX_CONFIG_VFCC_FRAMESKIP_INFO sCapSkipFrames;

      OMX_PARAM_CTRL_VIDDECODER_INFO sVidDecParam;

      OMX_PARAM_BUFFER_MEMORYTYPE memTypeCfg;

      OMX_PARAM_PORTDEFINITIONTYPE paramPort;

      OMX_ERRORTYPE eError = OMX_ErrorNone;

      OMX_INIT_PARAM (&paramPort);

    ..................

      OMX_INIT_PARAM (&sHwPortId);
      /* capture on EIO card is component input at VIP1 port */
      sHwPortId.eHwPortId = OMX_VIDEO_CaptureHWPortVIP1_PORTA;
      eError = OMX_SetParameter (pAppData->pCapHandle,
                                 (OMX_INDEXTYPE) OMX_TI_IndexParamVFCCHwPortID,
                                 (OMX_PTR) & sHwPortId);

      OMX_INIT_PARAM (&sHwPortParam);

      sHwPortParam.eCaptMode = OMX_VIDEO_CaptureModeSC_NON_MUX;
      sHwPortParam.eVifMode = OMX_VIDEO_CaptureVifMode_16BIT;
      sHwPortParam.eInColorFormat = OMX_COLOR_FormatYCbYCr;
      sHwPortParam.eScanType = OMX_VIDEO_CaptureScanTypeProgressive;
      sHwPortParam.nMaxHeight = pAppData->nHeight;
      sHwPortParam.nMaxWidth = pAppData->nWidth;
      sHwPortParam.nMaxChnlsPerHwPort = 1;

      eError = OMX_SetParameter (pAppData->pCapHandle,
                                 (OMX_INDEXTYPE)
                                 OMX_TI_IndexParamVFCCHwPortProperties,
                                 (OMX_PTR) & sHwPortParam);

    ...............

    Other available parameters can be found in the omx_vfcc.h header file.  These are the parameters that the driver supports and are exported by the OMX layer.  However, if you can give more info. on the use-case scenario (from capture operation perspective), and the parameters it will be helpful.

    regards,

    Tarakesh.

  • Dear Tarakesh,

    thank you very much for your prompt answer.

    I open omx_vfcc.h header but cannot find some useful parameter, like pixel clock polarity.

    I've also open V4L driver sources (arch/arm/mach-omap2/ti81xx_fb.c) and found there this setting:

    .pixClkEdgePol = VPS_VIP_PIX_CLK_EDGE_POL_RISING,

    which, IIUC, means that pixel clock polarity can (and should) be configured, by using this layer.

    However I would like to use OMX for my platform. Can you please tell me where I can find this parameter?

    Best Regards and thanks in advance for any clue,

    Andrea

  • deleted post. same contents following.

  • Hi, Tarakesh,

    I want to ask the same question like Andrea's. Is there low signal setting layer for omx ? or

    There is no such independent layer and v4l2 layer is used by omx ?

    If v4l2 is used by omx, then v4l2 signal setting issue can be resolved because source code is

    available for v4l2. Is this right ?

    if v4l2 is not used by omx and omx has its own signal interfaces, where can i find their sources ?

    Is it hidden ? If source is not available, where is api for changing its behavior ?

    Thanks in advance.

  • HI richard lee2,

    >>I want to ask the same question like Andrea's. Is there low signal setting layer for omx ? or There is no such independent layer and v4l2 layer is used by omx ?

    Low signal setting parameters are not available as of today thru OMX. This needs to be thought of and new configuration/param needs to be added for VFCC. VFCC uses a layer called as FVID2 driver. OMX does not use v4l2.

    >>if v4l2 is not used by omx and omx has its own signal interfaces, where can i find their sources ?Is it hidden ?

    HDVPSS pre-built binaries set this configuration and is black-boxed.

    If v4l2 meets your requirement, then you need not use OMX VFCC. For details on v4l2, please refer

    http://processors.wiki.ti.com/index.php/DM81xx_AM38xx_Adding_External_Decoders_to_V4L2_Capture_Driver

    regards

    Tarakesh.

  • Hi,

    Above document is the guide on how to add new decoders support to V4L2 capture driver. While below document is the V4L2 capture driver userguide. http://processors.wiki.ti.com/index.php/TI81XX_Video_Capture_Driver_User_Guide

    Regards,

    Hardik Shah