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.
When the DM36x H.264 encoder is set at a relatively large bitrate
(e.g. 1-10 Mbits/second for QVGA), the encoder frequently
fails with extended error 0x8010 (IH264VENC_ERR_PROCESS_CALL).
The error has been seen with encoder versions 2.20.00.005
and 2.30.00.01.
The error frequently occurs when the scene content changes from
complex moving objects to a blank single color.
The higher you set the bitrate, the more frequently the error occurs.
Can you confirm this issue?
My parameters are given below for 360x240 resolution at 10Mbits/second,
it shows the issue frequently.
Can the issue be worked-around by changing the parameters?
h264enc version 02.30.00.01
Base params
===========
size 124
encodingPreset 3
rateControlPreset 5
maxHeight 256
maxWidth 368
maxFrameRate 30000
dataEndianness 1
maxInterFrameInterval 0
inputChromaFormat 9
inputContentType 0
reconChromaFormat 9
profileIdc 100
levelIdc 30
Log2MaxFrameNumMinus4 0
ConstraintSetFlag 0
entropyMode 1
transform8x8FlagIntraFrame 0
transform8x8FlagInterFrame 0
enableVUIparams 7
meAlgo 1
seqScalingFlag 1
encQuality 0
enableARM926Tcm 0
enableDDRbuff 0
sliceMode 3
EnableLongTermFrame 0
outputDataMode 0
sliceFormat 1
==============
size 212
inputHeight 240
inputWidth 360
refFrameRate 30000
targetFrameRate 30000
targetBitRate 10000000
intraFrameInterval 60
generateHeader 0
captureWidth 384
forceFrame -1
interFrameInterval 1
mbDataFlag 0
sliceSize 1
airRate 0
intraFrameQP 28
interPFrameQP 28
initQ 28
rcQMax 51
rcQMin 5
rcQMaxI 40
rcQMinI 0
rcAlgo 6
maxDelay 300
aspectRatioX 10
aspectRatioY 11
lfDisableIdc 0
enableBufSEI 1
enablePicTimSEI 0
perceptualRC 0
idrFrameInterval 60
mvSADoutFlag 0
resetHDVICPeveryFrame 0
enableROI 0
metaDataGenerateConsume 0
disableMVDCostFactor 0
putDataGetSpaceFxn 60664
interlaceRefMode 0
maxBitrateCVBR 10000000
enableGDR 0
GDRduration 0
GDRinterval 0
LongTermRefreshInterval 0
UseLongTermFrame 0
SetLongTermFrame 0
VUI_Buffer 1601672
aspectRatioInfoPresentFlag 1
overscanInfoPresentFlag 0
overscanAppropriateFlag 0
videoSignalTypePresentFlag 1
videoFormat 2
pixelRange 1
colourDescriptionPresentFlag 0
colourPrimaries 2
transferCharacteristics 2
matrixCoefficients 2
timingInfoPresentFlag 1
numUnitsInTicks 1001
timeScale 60000
fixedFrameRateFlag 1
nalHrdParameterspresentFlag 1
picStructPresentFlag 0
bitstreamRestrictionFlag 1
CustomScaleMatrix_Buffer 1577828
CVBRsensitivity 0
CVBRminbitrate 0
LBRmaxpicsize 76
LBRminpicsize 0
LBRskipcontrol 327684
dataSyncHandle 1591288
.
.
.
@0x004592b2:[T:0x42522490] ti.sdo.dmai - [Venc1] VIDENC1_process() failed with error (-1 ext: 0x8010)
Error: Failed to encode video buffer
Regards,
John Whittington
John,
Can you please check if the issue exists when sliceMode is set to 0.
We will also check the issue at our end and get back
Adithya,
Thanks for your support.
I have indeed seen the issue with sliceMode 0 as well.
In fact I first noticed the issue in sliceMode 0.
Here are the parameters for sliceMode 0 (VGA resolution at 9 Mbits/sec, H.264 encode v2.20.00.05):
Base params
===========
size 124
encodingPreset 3
rateControlPreset 5
maxHeight 480
maxWidth 640
maxFrameRate 30000
dataEndianness 1
maxInterFrameInterval 0
inputChromaFormat 9
inputContentType 1
reconChromaFormat 9
profileIdc 77
levelIdc 30
Log2MaxFrameNumMinus4 0
ConstraintSetFlag 0
entropyMode 1
transform8x8FlagIntraFrame 0
transform8x8FlagInterFrame 0
enableVUIparams 7
meAlgo 1
seqScalingFlag 0
encQuality 0
enableARM926Tcm 0
enableDDRbuff 1
sliceMode 0
EnableLongTermFrame 0
outputDataMode 1
sliceFormat 1
==============
size 212
inputHeight 480
inputWidth 640
refFrameRate 30000
targetFrameRate 30000
targetBitRate 9000000
intraFrameInterval 60
generateHeader 0
captureWidth 1280
forceFrame -1
interFrameInterval 1
mbDataFlag 0
sliceSize 0
airRate 0
intraFrameQP 28
interPFrameQP 28
initQ 28
rcQMax 51
rcQMin 5
rcQMaxI 40
rcQMinI 0
rcAlgo 5
maxDelay 500
aspectRatioX 4
aspectRatioY 3
lfDisableIdc 0
enableBufSEI 1
enablePicTimSEI 0
perceptualRC 1
idrFrameInterval 60
mvSADoutFlag 0
resetHDVICPeveryFrame 2
enableROI 0
metaDataGenerateConsume 0
disableMVDCostFactor 0
putDataGetSpaceFxn 0
interlaceRefMode 0
maxBitrateCVBR 9000000
enableGDR 0
GDRduration 0
GDRinterval 0
LongTermRefreshInterval 0
UseLongTermFrame 0
SetLongTermFrame 0
VUI_Buffer 1679560
aspectRatioInfoPresentFlag 1
overscanInfoPresentFlag 0
overscanAppropriateFlag 0
videoSignalTypePresentFlag 1
videoFormat 2
pixelRange 1
colourDescriptionPresentFlag 0
colourPrimaries 2
transferCharacteristics 2
matrixCoefficients 2
timingInfoPresentFlag 1
numUnitsInTicks 1000
timeScale 60000
fixedFrameRateFlag 1
nalHrdParameterspresentFlag 1
picStructPresentFlag 0
bitstreamRestrictionFlag 1
CustomScaleMatrix_Buffer 1655992
CVBRsensitivity 0
CVBRminbitrate 0
LBRmaxpicsize 76
LBRminpicsize 0
LBRskipcontrol 327684
dataSyncHandle 1669128
Hi John,
We are not able to reproduce the issue at our end. We tried with 352x288 at 10Mbps on 02.30.00.01, process call is not returning any error.
Can you please try to run using codec debug library and send us the log? Please try to run on standalone testapp provided with the package.
Thanks,
Veeranna
OK.
Could you send your parameters?
I will convert my clip to raw YUV so I can use the testapp.
Here the params
Creatime params
===========
encodingPreset 3
rateControlPreset 5
maxHeight 2048
maxWidth 2048
maxFrameRate 30000
dataEndianness 1
maxInterFrameInterval 0
inputChromaFormat 9
inputContentType 1
reconChromaFormat 9
profileIdc 77
levelIdc 30
Log2MaxFrameNumMinus4 0
ConstraintSetFlag 0
entropyMode 1
transform8x8FlagIntraFrame 0
transform8x8FlagInterFrame 0
enableVUIparams 7 (it will be equal to 4, for info refer user guide)
meAlgo 0 (no use for encQuality = 0)
seqScalingFlag 0
encQuality 0
enableARM926Tcm 0
enableDDRbuff 0
sliceMode 3
EnableLongTermFrame 0
outputDataMode 0 (data sync is enable)
sliceFormat 0
Dynamic params
==============
inputHeight 288
inputWidth 352
refFrameRate 30000
targetFrameRate 30000
targetBitRate 10000000
intraFrameInterval 60
generateHeader 0
captureWidth 352
forceFrame -1
interFrameInterval 1
mbDataFlag 0
sliceSize 1
airRate 0
intraFrameQP 28
interPFrameQP 28
initQ 28
rcQMax 51
rcQMin 5
rcQMaxI 40
rcQMinI 0
rcAlgo 1/5/6 (tried for 3 cases)
maxDelay 500
aspectRatioX 10
aspectRatioY 11
lfDisableIdc 0
enableBufSEI 1
enablePicTimSEI 0
perceptualRC 0
idrFrameInterval 60
mvSADoutFlag 0
resetHDVICPeveryFrame 1
enableROI 0
metaDataGenerateConsume 0
disableMVDCostFactor 0
interlaceRefMode 0
maxBitrateCVBR 10000000
enableGDR 0
GDRduration 0
GDRinterval 0
LongTermRefreshInterval 0
UseLongTermFrame 0
SetLongTermFrame 0
CVBRsensitivity 0
CVBRminbitrate 0
LBRmaxpicsize 76
LBRminpicsize 0
LBRskipcontrol 327684
Hi,Adithya,
In the process of encoding,find the issue that IH264VENC_ERR_PROCESS_CALL(0x8010)
ERROR (encode.c | Video_EncRun | 1165):
Video_EncRun() failed with error (status:-1 outArgs.extendedError: 0x8010)
how to slove this issue?
my configuration as below:my configuration should use the slicemode)
Thank you!
Base params
===========
pObj->params.size = sizeof(IH264VENC_Params);
pObj->params.encodingPreset = 1; // 1.XDM_HIGH_QUALITY, 2.XDM_HIGH_SPEED
pObj->params.rateControlPreset = 1; // 1.IVIDEO_LOW_DELAY(CBR), 2.IVIDEO_STORAGE(VBR)
pObj->params.maxHeight = 480;
pObj->params.maxWidth = 640;
pObj->params.maxFrameRate = 25*1000; // VideoStd_D1_PAL( fps * 1000)
pObj->params.maxBitRate = 2*1000*1000;
pObj->params.dataEndianness = 1; // XDM_BYTE
pObj->params.maxInterFrameInterval = 0; // 1. If no B-frames
pObj->params.inputChromaFormat = 9; // 9.XDM_YUV_420SP
pObj->params.inputContentType = 0; // 0.IVIDEO_PROGRESSIVE
pObj->params.reconChromaFormat = 9; // 9.XDM_YUV_420SP
pObj->params_h264.profileIdc = 100; // 66(Base line profile), 77(main profile), 100(high profile)
pObj->params_h264.levelIdc = 40; // 40.IH264VENC_LEVEL_40;
pObj->params_h264.Log2MaxFrameNumMinus4 = 0;
pObj->params_h264.ConstraintSetFlag = 0;
pObj->params_h264.entropyMode = 0; // 0.CAVLC, 1.CABAC
pObj->params_h264.transform8x8FlagIntraFrame= 1;
pObj->params_h264.transform8x8FlagInterFrame= 1;
pObj->params_h264.enableVUIparams = 1;
pObj->params_h264.meAlgo = 0;
pObj->params_h264.seqScalingFlag = 1;
pObj->params_h264.encQuality = 2;
pObj->params_h264.enableARM926Tcm = 1;
pObj->params_h264.enableDDRbuff = 1;
pObj->params_h264.sliceMode = 1;
pObj->params_h264.numTemporalLayers = 0;
pObj->params_h264.svcSyntaxEnable = 0;
pObj->params_h264.EnableLongTermFrame = 0;
pObj->params_h264.outputDataMode = 1;
pObj->params_h264.sliceFormat = 1;
dynamic params
===========
pObj->dynamicParams.size = sizeof(IH264VENC_DynamicParams);
pObj->dynamicParams.inputHeight = 480;
pObj->dynamicParams.inputWidth = 640;
pObj->dynamicParams.refFrameRate = 25*1000;
pObj->dynamicParams.targetFrameRate = 25*1000;
pObj->dynamicParams.targetBitRate = 2*1000*1000;
pObj->dynamicParams.intraFrameInterval = 30;
pObj->dynamicParams.generateHeader = 0; // 0.XDM_ENCODE_AU
pObj->dynamicParams.captureWidth = 0;
pObj->dynamicParams.forceFrame = -1; // -1.IVIDEO_NA_FRAME
pObj->dynamicParams.interFrameInterval = 0;
pObj->dynamicParams.mbDataFlag = 0;
pObj->dynamicParams_h264.sliceSize = 0x580*8;
pObj->dynamicParams_h264.airRate = 0;
pObj->dynamicParams_h264.intraFrameQP = 28;
pObj->dynamicParams_h264.interPFrameQP = 28;
pObj->dynamicParams_h264.initQ = 28;
pObj->dynamicParams_h264.rcQMax = 45;
pObj->dynamicParams_h264.rcQMin = 0;
pObj->dynamicParams_h264.rcQMaxI = 42;
pObj->dynamicParams_h264.rcQMinI = 0;
pObj->dynamicParams_h264.rcAlgo = 0;
pObj->dynamicParams_h264.maxDelay = 2*1000; //
pObj->dynamicParams_h264.aspectRatioX = 1;
pObj->dynamicParams_h264.aspectRatioY = 1;
pObj->dynamicParams_h264.lfDisableIdc = 0;
pObj->dynamicParams_h264.enableBufSEI = 0;
pObj->dynamicParams_h264.enablePicTimSEI = 0;
pObj->dynamicParams_h264.perceptualRC = 1;
pObj->dynamicParams_h264.idrFrameInterval = 10;
pObj->dynamicParams_h264.mvSADoutFlag = 0;
pObj->dynamicParams_h264.resetHDVICPeveryFrame = 1;
pObj->dynamicParams_h264.enableROI = 0;
pObj->dynamicParams_h264.metaDataGenerateConsume = 0;
pObj->dynamicParams_h264.maxBitrateCVBR = 0;
pObj->dynamicParams_h264.interlaceRefMode = 0;
pObj->dynamicParams_h264.enableGDR = 0;
I am seeing a problem which may be very similar to this, but I don't quite understand what the solution was to this thread?
(My issue here: http://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/t/374552.aspx)