I have create the codec of h264fhdvenc successfully,
but there are 2 problems about the configurations for Param&DynamicParam
1.when I call venc1_control( , GETBUFINFO, &DynamicParam, &status), it gives the result of status as following:
minNumInBufs of H264 is 2
InBufSize[0] of H264 is 2088960
InBufSize[1] of H264 is 1044480
minNumOutBufs of H264 is 1
OutBufSize[0] of H264 is 0
it is obviously that the OutBufSize[0] is wrong, it should be (2088960 + 1044480), but the return value of venc1_control is 0(success). so i am very confused.
2.when I call venc1_control( , SETPARAM, &DynamicParam, &status), it failed, and it's return value is 57344
I think the above two problem are reference to the configurations of Param&DynamicParam. Is there anyone teach me how to config these parameters?
my configurations for Param&DynamicParam as followings:
g_paraH264.videncParams.size = sizeof(IH264FHDVENC_Params) ;
g_paraH264.videncParams.encodingPreset = XDM_DEFAULT ;
g_paraH264.videncParams.rateControlPreset = IVIDEO_LOW_DELAY ;
g_paraH264.videncParams.maxHeight = 1920;
g_paraH264.videncParams.maxWidth = 1088;
g_paraH264.videncParams.maxFrameRate = 30000 ;
g_paraH264.videncParams.maxBitRate = 10000000 ;
g_paraH264.videncParams.dataEndianness = XDM_LE_32 ;
g_paraH264.videncParams.maxInterFrameInterval = 0 ;
g_paraH264.videncParams.inputChromaFormat = XDM_YUV_420SP ;
g_paraH264.videncParams.inputContentType = IVIDEO_PROGRESSIVE ;
g_paraH264.videncParams.reconChromaFormat = -1 ;
g_paraH264.profileIdc = 66 ; //BASELINE_PROFILE
g_paraH264.levelIdc = 40;
g_paraH264.EntropyCodingMode = 0 ; //CAVLC
g_dpH264DynParams.videncDynamicParams.inputHeight = 1920;
g_dpH264DynParams.videncDynamicParams.inputWidth = 1088;
g_dpH264DynParams.videncDynamicParams.refFrameRate =30000;
g_dpH264DynParams.videncDynamicParams.targetFrameRate = 30000 ;
g_dpH264DynParams.videncDynamicParams.targetBitRate = 10000000 ;
g_dpH264DynParams.videncDynamicParams.intraFrameInterval= 30;
g_dpH264DynParams.videncDynamicParams.generateHeader = XDM_ENCODE_AU ;
g_dpH264DynParams.videncDynamicParams.captureWidth = 0 ;
g_dpH264DynParams.videncDynamicParams.forceFrame = -1 ;
g_dpH264DynParams.videncDynamicParams.interFrameInterval= 0 ;
g_dpH264DynParams.videncDynamicParams.mbDataFlag = 0 ;
g_dpH264DynParams.QPISlice = 28 ;
g_dpH264DynParams.QPSlice = 28 ;
g_dpH264DynParams.RateCtrlQpMax = 51 ;
g_dpH264DynParams.RateCtrlQpMin = 0 ;
g_dpH264DynParams.NumRowsInSlice = 0 ;
g_dpH264DynParams.LfDisableIdc = 0 ;
g_dpH264DynParams.LFAlphaC0Offset = 0 ;
g_dpH264DynParams.LFBetaOffset = 0 ;
g_dpH264DynParams.ChromaQPOffset = 0 ;
g_dpH264DynParams.SecChromaQPOffset = 0 ;
g_dpH264DynParams.OutBufSize = -1;