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.

DM8148 with dvrrdk v 04.1 h.264 encoder dropping frames with two 720p60 streams

Hi All,

I have a mostly working dual encoder project, but I ran into an issue trying to encode two 720p60 streams simultaneously. The errors dumped from the encoder link aren't giving me any clues what is happening:

[m3video] ENCLINK: B Frame is enabled for a channel 0
[m3video] ENCLINK: B Frame is enabled for a channel 1
[m3video] ENCLINK: WARNING: B Frame is enabled for a channel, cannot do batch processing (processMulti) for H.264 channels
[m3video] ENCLINK: WARNING: B Frame is enabled for a channel, cannot do batch processing (processMulti) for H.264 channels
[m3video] 5781:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[578]::INTERNAL ERROR:-1
[m3video] ALGCONTROL FAILED:CMD:1
[m3video] ERROR: IH264ENC_LEVEL_INCOMPLIANT_PARAMETER , 0,
[m3video] 5781:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[589]::INTERNAL ERROR:0
[m3video] Ext Error :0
[m3video] EXT_ERROR: IH264ENC_EXTERROR_FRMRATE_NUMUNITSINTICKS = 37
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_RCALGO = 110
[m3video] 5782:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[589]::INTERNAL ERROR:0
[m3video] Ext Error :20
[m3video] EXT_ERROR: IH264ENC_EXTERROR_CONTROLCALL_CMD = 5
[m3video] EXT_ERROR: IH264ENC_EXTERROR_METADATATYPES = 78
[m3video] EXT_ERROR: IH264ENC_EXTERROR_STEREO_PRESET = 130
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VERSION_BUFFER_NULL_OR_SIZE = 131
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VUI_NUMUNITSINTICKS = 132
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VUI_PRESET = 133
[m3video] EXT_ERROR: <î–›
[m3video] 5783:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[589]::INTERNAL ERROR:0
[m3video] Ext Error :0
[m3video] EXT_ERROR: IH264ENC_EXTERROR_INARGS_OUTARGS_SIZE = 46
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_BFRAMEPICSIZE = 98
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_CBCRQPINDEX_INITBUFLVL = 99
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_HRDBUFFER_LVLEXCEED = 100
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_IFRAME_QP = 101
[m3video] EXT_ERROR: IH264ENC_EXTERROR_SCLMATRIX_METADATA = 104
[m3video] EXT_ERROR: IH264ENC_EXTERROR_STATUS_SIZE = 128
[m3video] EXT_ERROR: IH264ENC_EXTERROR_STEREO_INPCONTENT = 129
[m3video] 5786:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[589]::INTERNAL ERROR:0
[m3video] Ext Error :4000
[m3video] EXT_ERROR: IH264ENC_EXTERROR_CREATE_LTRP_HP = 14
[m3video] EXT_ERROR: IH264ENC_EXTERROR_INTRA_REFRESHRATE = 66
[m3video] EXT_ERROR: IH264ENC_EXTERROR_IVAHD_BADRESET = 67
[m3video] EXT_ERROR: IH264ENC_EXTERROR_IVAHD_BADSTATE = 68
[m3video] EXT_ERROR: IH264ENC_EXTERROR_IVAHD_RELEASE = 69
[m3video] EXT_ERROR: IH264ENC_EXTERROR_LOOPFILTER_OFFST_LFIDC = 72
[m3video] EXT_ERROR: IH264ENC_EXTERROR_PROFILE_DATASYNC_INPCONTENT_RES = 96
[m3video] EXT_ERROR: IH264ENC_EXTERROR_PROFILE_INPCONTENT = 97
[m3video] EXT_ERROR: IH264ENC_EXTERROR_STATUS_SIZE = 128

[host] IpcBitsInLink_tskMain:Entered[HOST]
ThreadName:IpcBitsInLink_tskMain_3000001a,ThreadID:841

[host] 1761: IPC_BITS_IN : ListMPOpen start !!!

[host] 1762: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
[m3video] EXT_ERROR: IH264ENC_EXTERROR_STEREO_PRESET = 130
1765: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...

[host] 1766: IPC_BITS_IN : ListMPOpen done !!!

[host] 1767: IPC_BITS_IN : System_linkGetInfo done !!!
[HOST]
ThreadName:IpcBitsInLink_periodicTaskFxn_3000001a,ThreadID:876
[m3video] 5788:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[589]::INTERNAL ERROR:0
[m3video] Ext Error :0
[m3video] EXT_ERROR: IH264ENC_EXTERROR_FMO_PRESET = 34
[m3video] EXT_ERROR: IH264ENC_EXTERROR_FRMPACKING_PRESET = 35
[m3video] EXT_ERROR: IH264ENC_EXTERROR_FRMPACKING_TYPE_INPCONTENT = 36
[m3video] EXT_ERROR: IH264ENC_EXTERROR_FRMRATE_NUMUNITSINTICKS = 37
[m3video] EXT_ERROR: IH264ENC_EXTERROR_HIGHSPEED_BFARME = 40
[m3video] EXT_ERROR: IH264ENC_EXTERROR_INTRA_REFRESHMETHOD = 64
[m3video] EXT_ERROR: IH264ENC_EXTERROR_INTRA_REFRESHMETHOD_RATE = 65
[m3video] EXT_ERROR: IH264ENC_EXTERROR_PROFILE_DATASYNC_INPCONTENT_RES = 96
[m3video] EXT_ERROR: IH264ENC_EXTERROR_RATECTRL_BFRAMEPICSIZE = 98
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VERSION_BUFFER_NULL_OR_SIZE = 131
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VUI_NUMUNITSINTICKS = 132
[m3video] EXT_ERROR: IH264ENC_EXTERROR_VUI_PRESET = 133
[m3video] EXT_ERROR:
[m3video]
[m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
[m3video]
[m3video] videnc2DynamicParams -> inputHeight : 1080
[m3video] videnc2DynamicParams -> inputWidth : 1920
[m3video] videnc2DynamicParams -> refFrameRate : 60000
[m3video] videnc2DynamicParams -> targetFrameRate : 60000
[m3video] videnc2DynamicParams -> targetBitRate : 3000000
[m3video] videnc2DynamicParams -> intraFrameInterval : 60
[m3video] videnc2DynamicParams -> generateHeader : 0
[m3video] videnc2DynamicParams -> captureWidth : 1920
[m3video] videnc2DynamicParams -> forceFrame : -1
[m3video] videnc2DynamicParams -> interFrameInterval : 3
[m3video] videnc2DynamicParams -> mvAccuracy : 2
[m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
[m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
[m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
[m3video] videnc2DynamicParams -> lateAcquireArg : -1
[m3video]
[m3video] rateControlParams -> rateControlParamsPreset : 1
[m3video] rateControlParams -> scalingMatrixPreset : 1
[m3video] rateControlParams -> rcAlgo : 0
[m3video] rateControlParams -> qpI : -1
[m3video] rateControlParams -> qpMaxI : 20
[m3video] rateControlParams -> qpMinI : 5
[m3video] rateControlParams -> qpP : -1
[m3video] rateControlParams -> qpMaxP : 20
[m3video] rateControlParams -> qpMinP : 5
[m3video] rateControlParams -> qpOffsetB : 4
[m3video] rateControlParams -> qpMaxB : 44
[m3video] rateControlParams -> qpMinB : 10
[m3video] rateControlParams -> allowFrameSkip : 0
[m3video] rateControlParams -> removeExpensiveCoeff : 0
[m3video] rateControlParams -> chromaQPIndexOffset : 0
[m3video] rateControlParams -> IPQualityFactor : 0
[m3video] rateControlParams -> initialBufferLevel : 6000000
[m3video] rateControlParams -> HRDBufferSize : 6000000
[m3video] rateControlParams -> minPicSizeRatioI : 0
[m3video] rateControlParams -> maxPicSizeRatioI : 1
[m3video] rateControlParams -> minPicSizeRatioP : 0
[m3video] rateControlParams -> maxPicSizeRatioP : 0
[m3video] rateControlParams -> minPicSizeRatioB : 0
[m3video] rateControlParams -> maxPicSizeRatioB : 0
[m3video] rateControlParams -> enablePRC : 1
[m3video] rateControlParams -> enablePartialFrameSkip : 0
[m3video] rateControlParams -> discardSavedBits : 1
[m3video] rateControlParams -> VBRDuration : 0
[m3video] rateControlParams -> VBRsensitivity : 0
[m3video] rateControlParams -> skipDistributionWindowLength : 5
[m3video] rateControlParams -> numSkipInDistributionWindow : 2
[m3video] rateControlParams -> enableHRDComplianceMode : 1
[m3video] rateControlParams -> frameSkipThMulQ5 : 0
[m3video] rateControlParams -> vbvUseLevelThQ5 : 0
[m3video]
[m3video] interCodingParams -> interCodingPreset : 0
[m3video] interCodingParams -> searchRangeHorP : 144
[m3video] interCodingParams -> searchRangeVerP : 32
[m3video] interCodingParams -> searchRangeHorB : 144
[m3video] interCodingParams -> searchRangeVerB : 16
[m3video] interCodingParams -> interCodingBias : 1
[m3video] interCodingParams -> skipMVCodingBias : 1
[m3video] interCodingParams -> minBlockSizeP : 0
[m3video] interCodingParams -> minBlockSizeB : 0
[m3video] interCodingParams -> meAlgoMode : 0
[m3video]
[m3video] intraCodingParams -> intraCodingPreset : 0
[m3video] intraCodingParams -> lumaIntra4x4Enable : 0
[m3video] intraCodingParams -> lumaIntra8x8Enable : 255
[m3video] intraCodingParams -> lumaIntra16x16Enable : 15
[m3video] intraCodingParams -> chromaIntra8x8Enable : 15
[m3video] intraCodingParams -> chromaComponentEnable : 1
[m3video] intraCodingParams -> intraRefreshMethod : 0
[m3video] intraCodingParams -> intraRefreshRate : 0
[m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
[m3video] intraCodingParams -> constrainedIntraPredEnable : 0
[m3video] intraCodingParams -> intraCodingBias : 0
[m3video]
[m3video] sliceCodingParams -> sliceCodingPreset : 0
[m3video] sliceCodingParams -> sliceMode : 0
[m3video] sliceCodingParams -> sliceUnitSize : 0
[m3video] sliceCodingParams -> sliceStartOffset : [0 0 0]
[m3video] sliceCodingParams -> streamFormat : 0
[m3video]
[m3video] sliceGroupChangeCycle : 0
[m3video] searchCenter : 32767
[m3video] enableStaticMBCount : 0
[m3video] enableROI : 0
[m3video]
[m3video]

I don't see any parameters that should be causing a problem, and the encoder still runs after all this, it just runs slowly and backs up the whole chain. The output has far fewer frames than it should. Any clue what I'm doing wrong?

Thanks,

Rob

  • Hi Robert,

            Please go through the user guide & follow the External errors. You may get reason for create fail.

    Still if you don't have clue please send the static params as well. Which version of H.264 Encoder version you are using ??

    Regards

    Gajanan

  • Hi Gajanan, Thanks for your response.

    I have encoder version 2.00.06. I looked in the encoder user manual, but I didn't find any information on the errors. Is there another user manual I should be referencing?

    Static params are listed below:

    [m3video]
    [m3video] --------- CH 1 : H264 ENC : Static Params -------
    [m3video]
    [m3video] staticParams -> interlaceCodingType : 3
    [m3video] staticParams -> bottomFieldIntra : 0
    [m3video] staticParams -> gopStructure : 0
    [m3video] staticParams -> entropyCodingMode : 1
    [m3video] staticParams -> transformBlockSize : 2
    [m3video] staticParams -> log2MaxFNumMinus4 : 10
    [m3video] staticParams -> picOrderCountType : 0
    [m3video] staticParams -> enableWatermark : 0
    [m3video] staticParams -> IDRFrameInterval : 1
    [m3video] staticParams -> pConstantMemory : 0
    [m3video] staticParams -> maxIntraFrameInterval : 2147483640
    [m3video] staticParams -> debugTraceLevel : 0
    [m3video] staticParams -> lastNFramesToLog : 0
    [m3video] staticParams -> enableAnalyticinfo : 0
    [m3video] staticParams -> enableGMVSei : 0
    [m3video] staticParams -> constraintSetFlags : 0
    [m3video] staticParams -> enableRCDO : 0
    [m3video] staticParams -> enableLongTermRefFrame : 0
    [m3video] staticParams -> LTRPPeriod : 0
    [m3video] staticParams -> numTemporalLayer : 1
    [m3video] staticParams -> referencePicMarking : 1
    [m3video]
    [m3video] IVIDENC2_Params -> encodingPreset : 3
    [m3video] IVIDENC2_Params -> rateControlPreset : 5
    [m3video] IVIDENC2_Params -> maxHeight : 1080
    [m3video] IVIDENC2_Params -> maxWidth : 1920
    [m3video] IVIDENC2_Params -> dataEndianness : 1
    [m3video] IVIDENC2_Params -> maxInterFrameInterval : 3
    [m3video] IVIDENC2_Params -> maxBitRate : 3000000
    [m3video] IVIDENC2_Params -> minBitRate : 0
    [m3video] IVIDENC2_Params -> inputChromaFormat : 9
    [m3video] IVIDENC2_Params -> inputContentType : 0
    [m3video] IVIDENC2_Params -> operatingMode : 1
    [m3video] IVIDENC2_Params -> profile : 100
    [m3video] IVIDENC2_Params -> level : 41
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> outputDataMode : 3
    [m3video] IVIDENC2_Params -> numInputDataUnits : 1
    [m3video] IVIDENC2_Params -> numOutputDataUnits : 1
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> inputDataMode : 3
    [m3video] IVIDENC2_Params -> metadataType[0] : -1
    [m3video] IVIDENC2_Params -> metadataType[1] : -1
    [m3video] IVIDENC2_Params -> metadataType[2] : -1
    [m3video]
    [m3video] rateControlParams -> rateControlParamsPreset : 1
    [m3video] rateControlParams -> scalingMatrixPreset : 1
    [m3video] rateControlParams -> rcAlgo : 2
    [m3video] rateControlParams -> qpI : -1
    [m3video] rateControlParams -> qpMaxI : 36
    [m3video] rateControlParams -> qpMinI : 10
    [m3video] rateControlParams -> qpP : -1
    [m3video] rateControlParams -> qpMaxP : 40
    [m3video] rateControlParams -> qpMinP : 10
    [m3video] rateControlParams -> qpOffsetB : 4
    [m3video] rateControlParams -> qpMaxB : 44
    [m3video] rateControlParams -> qpMinB : 10
    [m3video] rateControlParams -> allowFrameSkip : 0
    [m3video] rateControlParams -> removeExpensiveCoeff : 0
    [m3video] rateControlParams -> chromaQPIndexOffset : 0
    [m3video] rateControlParams -> IPQualityFactor : 0
    [m3video] rateControlParams -> initialBufferLevel : 2500000
    [m3video] rateControlParams -> HRDBufferSize : 2500000
    [m3video] rateControlParams -> minPicSizeRatioI : 0
    [m3video] rateControlParams -> maxPicSizeRatioI : 640
    [m3video] rateControlParams -> minPicSizeRatioP : 0
    [m3video] rateControlParams -> maxPicSizeRatioP : 0
    [m3video] rateControlParams -> minPicSizeRatioB : 0
    [m3video] rateControlParams -> maxPicSizeRatioB : 0
    [m3video] rateControlParams -> enablePRC : 1
    [m3video] rateControlParams -> enablePartialFrameSkip : 0
    [m3video] rateControlParams -> discardSavedBits : 0
    [m3video] rateControlParams -> VBRDuration : 8
    [m3video] rateControlParams -> VBRsensitivity : 0
    [m3video] rateControlParams -> skipDistributionWindowLength : 5
    [m3video] rateControlParams -> numSkipInDistributionWindow : 1
    [m3video] rateControlParams -> enableHRDComplianceMode : 1
    [m3video] rateControlParams -> frameSkipThMulQ5 : 0
    [m3video] rateControlParams -> vbvUseLevelThQ5 : 0
    [m3video]
    [m3video] interCodingParams -> interCodingPreset : 0
    [m3video] interCodingParams -> searchRangeHorP : 144
    [m3video] interCodingParams -> searchRangeVerP : 32
    [m3video] interCodingParams -> searchRangeHorB : 144
    [m3video] interCodingParams -> searchRangeVerB : 16
    [m3video] interCodingParams -> interCodingBias : 1
    [m3video] interCodingParams -> skipMVCodingBias : 1
    [m3video] interCodingParams -> minBlockSizeP : 0
    [m3video] interCodingParams -> minBlockSizeB : 0
    [m3video] interCodingParams -> meAlgoMode : 0
    [m3video]
    [m3video] intraCodingParams -> intraCodingPreset : 0
    [m3video] intraCodingParams -> lumaIntra4x4Enable : 0
    [m3video] intraCodingParams -> lumaIntra8x8Enable : 255
    [m3video] intraCodingParams -> lumaIntra16x16Enable : 15
    [m3video] intraCodingParams -> chromaIntra8x8Enable : 15
    [m3video] intraCodingParams -> chromaComponentEnable : 1
    [m3video] intraCodingParams -> intraRefreshMethod : 0
    [m3video] intraCodingParams -> intraRefreshRate : 0
    [m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
    [m3video] intraCodingParams -> constrainedIntraPredEnable : 0
    [m3video] intraCodingParams -> intraCodingBias : 0
    [m3video]
    [m3video] nalUnitControlParams -> naluControlPreset : 1
    [m3video] nalUnitControlParams -> naluPresentMaskStartOfSequence : 8608
    [m3video] nalUnitControlParams -> naluPresentMaskIDRPicture : 8672
    [m3video] nalUnitControlParams -> naluPresentMaskIntraPicture : 8450
    [m3video] nalUnitControlParams -> naluPresentMaskNonIntraPicture : 2
    [m3video] nalUnitControlParams -> naluPresentMaskEndOfSequence : 3072
    [m3video]
    [m3video] sliceCodingParams -> sliceCodingPreset : 0
    [m3video] sliceCodingParams -> sliceMode : 0
    [m3video] sliceCodingParams -> sliceUnitSize : 0
    [m3video] sliceCodingParams -> sliceStartOffset[0] : 0
    [m3video] sliceCodingParams -> sliceStartOffset[1] : 0
    [m3video] sliceCodingParams -> sliceStartOffset[2] : 0
    [m3video] sliceCodingParams -> streamFormat : 0
    [m3video]
    [m3video] loopFilterParams -> loopfilterPreset : 0
    [m3video] loopFilterParams -> loopfilterDisableIDC : 0
    [m3video] loopFilterParams -> filterOffsetA : 0
    [m3video] loopFilterParams -> filterOffsetB : 0
    [m3video]
    [m3video] fmoCodingParams -> fmoCodingPreset : 0
    [m3video] fmoCodingParams -> numSliceGroups : 1
    [m3video] fmoCodingParams -> sliceGroupMapType : 4
    [m3video] fmoCodingParams -> sliceGroupChangeDirectionFlag : 0
    [m3video] fmoCodingParams -> sliceGroupChangeRate : 0
    [m3video] fmoCodingParams -> sliceGroupChangeCycle : 0
    [m3video] fmoCodingParams -> sliceGroupParams[0] : 0
    [m3video] fmoCodingParams -> sliceGroupParams[1] : 0
    [m3video]
    [m3video] vuiCodingParams -> vuiCodingPreset : 1
    [m3video] vuiCodingParams -> aspectRatioInfoPresentFlag : 0
    [m3video] vuiCodingParams -> aspectRatioIdc : 0
    [m3video] vuiCodingParams -> videoSignalTypePresentFlag : 0
    [m3video] vuiCodingParams -> videoFormat : 2
    [m3video] vuiCodingParams -> videoFullRangeFlag : 0
    [m3video] vuiCodingParams -> timingInfoPresentFlag : 1
    [m3video] vuiCodingParams -> hrdParamsPresentFlag : 1
    [m3video] vuiCodingParams -> numUnitsInTicks : 1000
    [m3video]
    [m3video] stereoInfoParams -> stereoInfoPreset : 0
    [m3video] stereoInfoParams -> topFieldIsLeftViewFlag : 1
    [m3video] stereoInfoParams -> viewSelfContainedFlag : 0
    [m3video]
    [m3video] framePackingSEIParams -> framePackingPreset : 0
    [m3video] framePackingSEIParams -> framePackingType : 3
    [m3video] framePackingSEIParams -> frame0PositionX : 0
    [m3video] framePackingSEIParams -> frame0PositionY : 0
    [m3video] framePackingSEIParams -> frame1PositionX : 0
    [m3video] framePackingSEIParams -> frame1PositionY : 0
    [m3video]
    [m3video] svcCodingParams -> svcExtensionFlag : 0
    [m3video] svcCodingParams -> dependencyID : 0
    [m3video] svcCodingParams -> qualityID : 0
    [m3video] svcCodingParams -> enhancementProfileID : 0
    [m3video] svcCodingParams -> layerIndex : 0
    [m3video] svcCodingParams -> refLayerDQId : 0
    [m3video]

    Thanks,

    Rob

  • Hi Robert,

               Based on your static params, rcAlgo  = 2 is not supported value. There may be more issues.

    The same you can read in the User Guide "Table 4-8. Default and Supported Values for IH264ENC_RateControlParams".

    If you are not sure of any parameters please keep all default & start modifying one by one accordingly. Then you will get the idea about what's wrong with the 

    params. And also you can try to use the ParamPreset to 0(default) (e.g rateControlParamsPreset = 0). This way you can easily track about the wrong params.

    And also you can take the error log & check in the user guide about which param causes that error.

    Regards

    Gajanan