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.

[Emergency!]why the pixel value I set in display link get distorted?

Hi,

   We are using DM8168 based on RDK4.0. For some reason, we want to use  4 bytes in frame data to stand for a application defined meaning. For this purpose, we add below code in function DisplayLink_drvProcessData:

        

pVideoData=(UInt8 *)(pFrame->addr[0][0]);
pVideoData[0]=0x30;
pVideoData[1]=0x30;
pVideoData[2]=0x30;
pVideoData[3]=0x30;

   The display device is a fpga connected to Vout1. We hope to find the same value as we set in the captured frame buffer in FPGA. That is, the first 4 bytes of fpga captured frame should be 0x30. However, we see the values have been distorted to:0x60,0x53,0x60,0x4b.

   It seems something happened after DisplayLink_drvProcessData and modify the value we set in the frame. Anyone knows the root cause for this and is there any way to avoid this distortion? Thanks!

  • Hi,

     

    For the Video path, it can not be same, there will always be slight variation, and also how is the fpga connected to the vout1. If it is connected over RGB interface, it will never be same, it has to be connected over YUV bt1120 interface.

    On the video path, data is first gets converted into YUV444 and then to RGB. Then in the VENC, it will be converted back to YUV422, using csc and chrom down sampler, But still it will be not be same since yuv422->yuv444 convertor in the path and yuv444->yuv422 convertor in the venc are not same.

    The only way to get the unchanged value is to use grpx path with RGB888 format and output in RGB888 format with no other processing (like scalar) enabled in grpx

     

    Regards,

    Brijesh Jadav