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.

can't create DEI link

Hi all,

  i want to read YUV422 data from A8 and encode, the data flow as below,

                        IPC Frames Out (A8)
                                         |
                                         |
                          IPC Frames IN (M3)
                                         |
                                         |
                                     DEIH
                                         | |
                      +------------+ +------------+
                      |                                       |
                (DEI-SC1 422)             (VIP-SC3 420SP)
                      |                                       |
                      |                                       |
                      |                             IPC OUT(M3)
                      |                                       |
                  SW Mosaic                  IPC IN(M3)
                (SC5 YUV422I)                     |
                      |                                 Encode
                      |                                       |
                      |                           IPC Bits OUT (M3)     
                On-Chip HDMI                      |
                                                  IPC Bits IN (A8)

but the problem is that the dei link can't be created. the program stop at [m3vpss ] DEI: Create in progress !!! what's the matter?

The configuration of the dei  is as below:

   gVcapModuleContext.deiId[0]     = SYSTEM_LINK_ID_DEI_HQ_0;

   deiPrm.inQueParams.prevLinkId                           = gVdisModuleContext.ipcFramesInVpssFromHostId;
    deiPrm.inQueParams.prevLinkQueId                        = 0;
    deiPrm.enableOut[DEI_LINK_OUT_QUE_DEI_SC]               = TRUE;
    deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]               = TRUE;
    deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC_SECONDARY_OUT] = FALSE;
    deiPrm.tilerEnable                                      = enableTiler;

#if 1
        /* Set non default DEI Frame Rate */
     deiPrm.inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC]       = 60;
     deiPrm.outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC]      = 60;

        /* Set non default DEI Frame Rate */
     deiPrm.inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]       = 60;
     deiPrm.outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]      = 60;
#endif
     deiPrm.comprEnable                                   = FALSE;
     deiPrm.setVipScYuv422Format                          = FALSE;
     deiPrm.scaleMode                                     = DEI_SCALE_MODE_RATIO;
     deiPrm.enableDeiForceBypass                          = TRUE;
     deiPrm.enableLineSkipSc                              = FALSE;

        /* DEI Path Scalar ratio is 1:2, D1 => CIF */
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.widthRatio.numerator   = 1;
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.widthRatio.denominator = 1;

     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.heightRatio.numerator   = 1;
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_DEI_SC].ratio.heightRatio.denominator = 1;

        /* DEI Path Scalar ratio is 1:2, D1 => CIF */
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.widthRatio.numerator   = 1;
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.widthRatio.denominator = 1;

     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.heightRatio.numerator   = 1;
     deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC].ratio.heightRatio.denominator = 1;

     deiPrm.outQueParams[DEI_LINK_OUT_QUE_DEI_SC].nextLink= gVdisModuleContext.swMsId[0];
     deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink= gYUVReadVencVdisObj.ipcOutVpssId;

  • Attach your usecase file where you are creating and connecting links and the console logs.Check if ipcFramesOutHost link sets correct chInfo for all channels.

  • Badri,

          Thanks for your reply, I found the reason, It was because that I forget set the chInfo of the ipcFramesOutHost link.

          But now, I have a new problem, the encode link can't be created. the information printed on the terminal screen shows that the input data format is not FVID2_DF_YUV420SP_UV or  FVID2_DF_YUV420SP_VU, but I have set the dei to be bypass mode, and   deiPrm.setVipScYuv422Format  = FALSE. I don't know how to do now.

      And, because the YUV frame read from the file is 1920x1080, but  the information printed on the terminal screen shows that this cpu revision [es1.1] does not support current set width 1920, but the mcfw_api_demo include the example of  VCAP + VENC        + VDIS  - HD Encode ONLY, it shows that HD 1080p video can be de-interlaced and encoded. I can't understand it.

    My usecase files were attached below.

    The information printed on the termianl screen:

    [host]  40: IPC_FRAMES_OUT   : Create in progress !!!
     
     [host]  41: IPC_FRAMES_OUT   : Create Done !!!
     [m3vpss ]  14583: IPC_FRAMES_IN   : Create in progress !!!
     [m3vpss ]  14583: SYSTEM: Opening ListMP [HOST_IPC_OUT_23] ...
     [m3vpss ]  14584: SYSTEM: Opening ListMP [HOST_IPC_IN_23] ...
     [m3vpss ]  14585: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
     [m3vpss ] IPC_FRAMES_IN:HEAPID:0       USED:240
     [m3vpss ]  14587: IPC_FRAMES_IN   : Create Done !!!
     [m3vpss ]  14587: DEI    : Create in progress !!!
     [m3vpss ]  14587: Warning: This CPU Revision [ES1.1] does not support current set width 1920
     [m3vpss ]  14587: Warning: Limiting Input width to 960
     [m3vpss ]  14588: Warning: This CPU Revision [ES1.1] does not support current set width 1920
     [m3vpss ]  14588: Warning: Limiting Input width to 960
     [m3vpss ]  14588: Warning: This CPU Revision [ES1.1] does not support current set width 1920
     [m3vpss ]  14588: Warning: Limiting Input width to 960
     [m3vpss ]  14588: Warning: This CPU Revision [ES1.1] does not support current set width 1920
     [m3vpss ]  14588: Warning: Limiting Input width to 960
     [m3vpss ]  15123: DEI     : Loading Down-scaling Co-effs
     [m3vpss ]  15124: DEI     : Co-effs Loading ... DONE !!!
     [m3video]  15125: IPC_IN_M3   : Create in progress !!!
     [m3video]  15125: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
     [m3vpss ] DEI:HEAPID:0 USED:64
     [m3video]  15126: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
     [m3vpss ] DEI:HEAPID:1 USED:8960
     [m3video]  15126: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3vpss ]  15124: DEI    : Create Done !!!
     [m3video]  15127: IPC_IN_M3   : Create Done !!!
     [m3vpss ]  15124: IPC_OUT_M3   : Create in progress !!!
     [m3video]  15128: ENCODE: Create in progress ... !!!
     [m3vpss ]  15125: IPC_OUT_M3   : Create Done !!!
     [m3video]  15353: ENCODE: Creating CH0 of 960 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3video]  15353: Assertion @ Line: 209 in /home/ck/dvr-rdk/DVRRDK_02.00.00.23/dvr_rdk/../dvr_rdk/mcfw/src_bios6/links_m3video/codec_utils/utils_encdec.h: (chromaFormat == FVID2_DF_YUV420SP_UV) || (chromaFormat == FVID2_DF_YUV420SP_VU) : failed !!!

    yuvread.tar.gz
  • What is the DVR RDK version you are using. If you are using DVR RDK version other than DVR RDK 4.1 then migrate to DVR RDK 4.1version.Old DVR RDK releases are not supported and may have bugs that could be causing this issue.

    I reviewed your usecase file and  don't see any issues with the link connections.You can try printing the chromaFormat when assert happens and that would give some idea on the issue.

  • Hi Badri,

          Thanks for your reply. I have printed the chromaFormat, chromaFormat = 1(FVID2_DF_YUV422I_YUYV). But after I  set the dataFormat of chInfo of the ipcFramesOutHost link to be SYSTEM_DF_YUV420SP_UV, the chromaFormat is still 1(FVID2_DF_YUV422I_YUYV), it's so strange.

  • Hi Badri,

        The version of my DVR RDK is 2.0. I have found the solution of the problem, after I added the merge link between dei link and ipcOutVpss link, the encode link can work well. I don't konw why, maybe there is a bug in this old development kit.