Hello TI,
We are using TI8148 EVM board, we are playing with capture_encode demo example available in ezsdk_5_05_01_04. We are able to set bit-rate run time using dynamic parameters but unable to set frame-rate run-time using dynamic parameters.
Here is my code,
This is working in case of bit-rate:
OMX_INIT_PARAM (&tDynParams);
tDynParams.nPortIndex = OMX_VIDENC_OUTPUT_PORT;
eError = OMX_GetConfig (pAppData->pEncHandle, OMX_TI_IndexParamVideoDynamicParams,
&tDynParams);
/* setting bit-rate */
tDynParams.videoDynamicParams.h264EncDynamicParams.videnc2DynamicParams.targetBitRate = bitrate*1000;
tDynParams.videoDynamicParams.h264EncDynamicParams.videnc2DynamicParams.forceFrame = IVIDEO_IDR_FRAME;
eError = OMX_SetConfig (pAppData->pEncHandle, OMX_TI_IndexParamVideoDynamicParams,
&tDynParams);
if (eError != OMX_ErrorNone)
{
ERROR ("failed to set bit-rate\n");
}
else
{
printf ("Set encoder bit-rate to %d kbps\n", bitrate);
}
This is not working in case of frame-rate:
OMX_INIT_PARAM (&tDynParams);
tDynParams.nPortIndex = OMX_VIDENC_OUTPUT_PORT;
eError = OMX_GetConfig (pAppData->pEncHandle, OMX_TI_IndexParamVideoDynamicParams,
&tDynParams);
/* setting target frame-rate */
tDynParams.videoDynamicParams.h264EncDynamicParams.videnc2DynamicParams.targetFrameRate = framerate*1000;
tDynParams.videoDynamicParams.h264EncDynamicParams.videnc2DynamicParams.forceFrame = IVIDEO_IDR_FRAME;
eError = OMX_SetConfig (pAppData->pEncHandle, OMX_TI_IndexParamVideoDynamicParams,
&tDynParams);
if (eError != OMX_ErrorNone)
{
ERROR ("failed to set frame-rate\n");
}
else
{
printf ("Set encoder target frame-rate to %d fps\n", framerate);
}
I also tried with,
OMX_CONFIG_FRAMERATETYPE frameRateType;
OMX_INIT_PARAM (&frameRateType);
frameRateType.nPortIndex = OMX_VIDENC_OUTPUT_PORT;
eError = OMX_GetConfig (pAppData->pEncHandle, OMX_IndexConfigVideoFramerate,
&frameRateType);
frameRateType.xEncodeFramerate = framerate << 16;
eError = OMX_SetConfig (pAppData->pEncHandle, OMX_IndexConfigVideoFramerate,
&frameRateType);
if (eError != OMX_ErrorNone)
{
ERROR ("failed to set frame-rate\n");
}
else
{
printf ("Set encoder target frame-rate to %d fps\n", framerate);
}
Is there any other settings that i need to do ? Your quick help/guide will move me ahead in my development.
Many thanks,
Hitesh