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.

OMX H264 Decoder dynamic resize problems

Hi,

I'm trying to get the OMX H264 decoder component to support dynamic input size changes.

The decoder is configured for 1080p and can play back 1080p H264 files ok. However, I have a 720p file it also needs to be able to play back without restarting the app.

The output from the decoder goes through a DEI component and is scaled to fit on a 1080p display.

When the input size is changed to 720p I reconfigured the DEI as follows:

  OMX_INIT_PARAM (&chResolutionNew);

  // TODO do these numbers depend on the decode frame size ?
  chResolutionNew.Frm0Width = width;
  chResolutionNew.Frm0Height = height;
  chResolutionNew.Frm0Pitch = pAppData->nDecStride;

  chResolutionNew.Frm1Width = 0;
  chResolutionNew.Frm1Height = 0;
  chResolutionNew.Frm1Pitch = 0;
  chResolutionNew.FrmStartX = startx;
  chResolutionNew.FrmStartY = starty;
  chResolutionNew.FrmCropWidth = cropWidth;
  chResolutionNew.FrmCropHeight = cropHeight;
  chResolutionNew.eDir = OMX_DirInput;
  chResolutionNew.nChId = 0;

  eError = OMX_SetConfig (pAppData->pDei2Handle,
						  (OMX_INDEXTYPE) OMX_TI_IndexConfigVidChResolution,
						  &chResolutionNew);
  if (eError != OMX_ErrorNone)
  {
	  ERROR ("failed to set input channel resolution\n");
  }

The problem is that the 720p decoded frames appear like this with the remaining part of the image appearing as noise:

How do I properly reconfigure the decoder and DEI to support dynamic H264 input size changes? I need this to happen without restarting the application.

Thanks,

Steven