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.

[FAQ]: How to detect erroneous input frame in VIP?

VIP receives input data over digital parallel input. Due to various reasons, the input signals could sometimes have errors and the frames captured during this needs to be detected, so that they don't get processed further. How can application detect these erroneous frames?

  • There are multiple ways to detect incorrect or erroneous frame in VIP. Depending on modules being used and path being taken, one of the following method can be employed to detect erroneous frames.

    1. VIP size register: VIP counts the number of pixels in horizontal and vertical direction and reports it in the size register. These size register can be used to identify the erroneous frame. Please note size register reports size after trimmer module. So if the trimmer modules is enabled in VIP Parser, the frame size longer than the expected size cannot be detected.
    2. VIP Size interrupt: VIP can be configured to generate interrupt if the input frame size does not match with the configured frame size. VIP has register (VIP_XTRA_PORT_A/B) where expected frame size can be provided and then interrupt with the status (PORT_A_SRC0_SIZE_STATUS/PORT_B_SRC0_SIZE_STATUS) will be generated whenever there is a size mismatch. 
    3. RT Params to get the output frame size: VIP driver supports a feature using which application can get size of the each captured frame. To enable this feature, application needs to provide an instance of Vps_CaptRtParams as a per frame config (perFrmCfg) to Fvid2_Frame when calling Fvid2_queue and application will get back this structure on calling Fvid2_dequeue. The structure Vps_CaptRtParams provides the size of the frame written into memory. Using this structure, application can determine if the frame is correct or not. Please note that trimmer in VIP parser needs to be disabled for this method to work. 
      Also please note that if the parameters Vps_VpdmaMaxOutWidth and Vps_VpdmaMaxOutHeight are used to limit the frame size written into memory, the framesize reported in Vps_CaptRtParams is also limited by this limit. In this case, the solution is to keep the limit slightly mode to detect big frames.