Hi Ram, Santhosh,
We have tested capture encode application on EVM below is our observations.
1. Test with default capture_encode application (Progressive Capture on ti8148EVM)
Input Video : 1080i
Output Encoded File(renamed by txt extension, so renamed back to .h264 extension) : (Please visit the site to view this file)
2. Test with capture_encode application (Interlaced Capture on ti8148EVM)
We added below code in capture_encode application for interlaced encoding
file : component-sources/omx_05_02_00_46/examples/ti/omx/demos/capture_encode/src/ilclient_utils.c
function : IL_ClientSetEncodeParams()
----------------------------------------------------------------------------------------------------------
OMX_ERRORTYPE IL_ClientSetEncodeParams (IL_Client *pAppData)
{
...
...
OMX_INIT_PARAM (&tStaticParam);
tStaticParam.nPortIndex = OMX_VIDENC_OUTPUT_PORT;
eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
&tStaticParam);
/* To use extended parameters */
tStaticParam.videoStaticParams.h264EncStaticParams.rateControlParams.HRDBufferSize
= 4000000;
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.encodingPreset
= XDM_USER_DEFINED;
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.rateControlPreset
= IVIDEO_USER_DEFINED;
/* for interlace, base profile can not be used */
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.profile = IH264_HIGH_PROFILE;
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.level = IH264_LEVEL_22;
/* setting Interlace mode */
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.inputContentType = IVIDEO_INTERLACED;
tStaticParam.videoStaticParams.h264EncStaticParams.bottomFieldIntra = 0;
tStaticParam.videoStaticParams.h264EncStaticParams.interlaceCodingType = IH264_INTERLACE_FIELDONLY;
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.encodingPreset = XDM_USER_DEFINED;
tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.rateControlPreset = IVIDEO_USER_DEFINED;
tStaticParam.videoStaticParams.h264EncStaticParams.intraCodingParams.lumaIntra4x4Enable = 309;
tStaticParam.videoStaticParams.h264EncStaticParams.intraCodingParams.lumaIntra8x8Enable = 320;
/* To set user-defined NAL Unit */
tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluControlPreset = IH264_NALU_CONTROL_USERDEFINED;
H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIntraPicture);
H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIntraPicture);
H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
H264_SETNALU_MASK_SEI(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);
H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);
H264_SETNALU_MASK_SEI(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);
/* To set VUI information */
tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.vuiCodingPreset = IH264_VUICODING_USERDEFINED;
tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.hrdParamsPresentFlag = 1;
tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.timingInfoPresentFlag = 1;
tStaticParam.videoStaticParams.h264EncStaticParams.maxIntraFrameInterval = 0xFFFF;
eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
&tStaticParam);
...
...
}
----------------------------------------------------------------------------------------------------------
Input Video : 1080i
Output Encoded File (renamed by txt extension, so renamed back to .h264 extension) : (Please visit the site to view this file)
Observation : Same jumping effect is there in encoded file.
So we are facing same jumping effect issue for interlaced encoding in EVM as well.