Hi all,
I am working on dm8168 EVM, I really stuck at change resolution at run time.
I created an encoder with initial parameter width 1920 ,height 1080 .
I tried to change the resolution to 1280x720 at run time
Here is the steps.
case 1://without stopping the encoder or decoder(In Executing State)
Steps Followed:
1.Started both encoder & decoder chains with resolution 1920x1080.
2.Changed the DeiH scalar resolution to the new one.
3.Called OMX_GetParameter to know the present value.
4.Called OMX_SetParameter with index OMX_TI_IndexParamVideoDynamicParams
after updating the new height & width(1280x720)[Encoder Side H.264].
5.In OMX_SetParameter
a.Made a VIDENC2_control call with XDM_GETSTATUS.
b.Updated the new height and width.
c.Made a VIDENC2_control call with XDM_SETPARAMS.
Result :In vdec component, IVIDDEC3_process()
detected IH264VDEC_ERR_PICSIZECHANGE error (VDEC would give this error, If It detects the resolution has changed
compare to previous).
IVIDENC2_process() also returned an error XDM_FAIL after changing the resolution and the encoder stops.
As a result, the entire chain is halted.
Query : Is it possible to change the resolution at runtime without stopping the encoder/decoder?
Do i need to do anything in decoder side to handle the changed resolution?
case 2://Stopped Encoder & Decoder
Steps Followed:
1.Started both encoder & decoder chains with resolution 1920x1080.
2.Stopped Encoder & Decoder.
3.Called OMX_SetParameter with index OMX_TI_IndexParamVideoDynamicParams
after updating the new height & width(1280x720).
4.Started Encoder & Decoder.
Result: This time it didn't show any Error ,but had the same white screen.
NB: if i try with initial resolution as 1280x720 with case 2 sequence & try to set the same resolution(1280x720)
video is displayed with some artifats. But the same thing is not possible with resolution 1920x1080.
The h264 encoder and decoder version that we are working on is 01_00_01_03 and 01_00_00_02 respectively.
Can someone help me on this?