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.

DM8127中enclink创建失败,报错(status->videnc2Status.bufInfo.minOutBufSize[i].bytes < algCreateParams->mvDataSize) : failed !!!

开发DM8127+ipnc-rdk3.5,输入的视频为pal->tvp5150->dm8127,视频分辨率为720*576

enclink创建报错如下:

 [m3video]  12761: ENCODE: Creating CH0 of 720 x 480, pitch = (736, 736) [PROGRESSIVE] [NON-TILED  ], bitrate = 10000 Kbps ...
 [m3video] chromaFormat = 7
 [m3video] FVID2_DF_YUV420SP_UV = 7
 [m3video] FVID2_DF_YUV420SP_VU = 8
 [m3video] pInChInfo->width = 720, pInChInfo->height = 480
 [m3video] EncLinkH264_algCreate(): enclink_h264_control() algStatus = 0
 [m3video] EncLinkH264_algCreate() 1398: tileMem.width  = 0
 [m3video] EncLinkH264_algCreate() 1399: tileMem.height = 0
 [m3video] EncLinkH264_algCreate() 1410: tileMem.width  = 518400
 [m3video] EncLinkH264_algCreate() 1411: tileMem.height = 0
 [m3video] enclink_h264_set_algObject() 761: tileMem.width  = 518400
 [m3video] enclink_h264_set_algObject() 762: tileMem.height = 0
 [m3video] enclink_h264_set_algObject() 768: status.videnc2Status.bufInfo.minNumOutBufs = 2
 [m3video] enclink_h264_set_algObject() 774: i = 0, tileMem.width = 518400
 [m3video] enclink_h264_set_algObject() 775: i = 0, tileMem.height = 0
 [m3video] enclink_h264_set_algObject() 774: i = 1, tileMem.width = 148172
 [m3video] enclink_h264_set_algObject() 775: i = 1, tileMem.height = 0
 [m3video] enclink_h264_set_algObject() 792: i = 1, videnc2Status.bufInfo.minOutBufSize[i].bytes = 148172
 [m3video] enclink_h264_set_algObject() 793: i = 1, algCreateParams->mvDataSize = 32400
 [m3video]  12890: Assertion @ Line: 796 in links_m3video/iva_enc/encLink_h264.c: (status->videnc2Status.bufInfo.minOutBufSize[i].bytes < algCreateParams->mvDataSize) : failed !!!
ApproDrvInit: 7
queue id:131076

上述信息中有不少是自己添加的打印信息。usecase中的EncLink配置如下:

    /* ENC link */
    MULTICH_INIT_STRUCT(EncLink_CreateParams,encPrm);
    {
        EncLink_ChCreateParams   *pLinkChPrm;
        EncLink_ChDynamicParams  *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S        *pChPrm;

        for (i = 0; i < VENC_PRIMARY_CHANNELS; i++)
        {
            pLinkChPrm  = &encPrm.chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;

            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
             //added by qiu
            pChPrm->videoWidth = 720 ;
            if (capturePrm.isPalMode)
            {
                pChPrm->videoHeight = 576 ;
            }
            else
            {
                pChPrm->videoHeight = 480 ;
            }

           pDynPrm     = &pChPrm->dynamicParam;

            pLinkChPrm->format                     = IVIDEO_H264HP;
            pLinkChPrm->profile                 = gVencModuleContext.vencConfig.h264Profile[i];
            pLinkChPrm->dataLayout              = IVIDEO_PROGRESSIVE;
            pLinkChPrm->fieldMergeEncodeEnable  = FALSE;
            pLinkChPrm->enableAnalyticinfo      = pChPrm->enableAnalyticinfo;
            pLinkChPrm->maxBitRate              = pChPrm->maxBitRate;
            pLinkChPrm->encodingPreset          = pChPrm->encodingPreset;
            pLinkChPrm->rateControlPreset       = IVIDEO_USER_DEFINED;
            pLinkChPrm->enableHighSpeed         = FALSE;
            pLinkChPrm->enableWaterMarking      = pChPrm->enableWaterMarking;
            pLinkChPrm->StreamPreset            = gUI_mcfw_config.StreamPreset[i];

            pLinkDynPrm->intraFrameInterval     = pDynPrm->intraFrameInterval;
            pLinkDynPrm->targetBitRate          = pDynPrm->targetBitRate;
            pLinkDynPrm->interFrameInterval     = 1;
            pLinkDynPrm->mvAccuracy             = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
            pLinkDynPrm->inputFrameRate         = pDynPrm->inputFrameRate;
            pLinkDynPrm->rcAlg                  = pDynPrm->rcAlg;
            pLinkDynPrm->qpMin                  = pDynPrm->qpMin;
            pLinkDynPrm->qpMax                  = pDynPrm->qpMax;
            pLinkDynPrm->qpInit                 = pDynPrm->qpInit;
            pLinkDynPrm->vbrDuration            = pDynPrm->vbrDuration;
            pLinkDynPrm->vbrSensitivity         = pDynPrm->vbrSensitivity;

            encPrm.numBufPerCh[i]             = NUM_ENCODE_BUFFERS;
            gVencModuleContext.encFormat[i] = pLinkChPrm->format;
        }
    }

    encPrm.chCreateParams[0].defaultDynamicParams.inputFrameRate = 30;
    encPrm.chCreateParams[1].defaultDynamicParams.inputFrameRate = 30;
    encPrm.vsEnable                                              = 0;
    encPrm.isVaUseCase                                           = 0;
    encPrm.inQueParams.prevLinkQueId                             = 0;

折腾很多天,仍然无法定位问题,求助各路高手!

谢谢!