sendFormatChange=>kWhatOutputFormatChange=>MEDIA_SET_VIDEO_SIZE=> ... =>native_window_set_buffers_dimensions
Just a clarification, lets use QC example, component recognize crop change - look for OMX_IndexConfigCommonOutputCrop
here omx_vdec, then ACodec clears mSentFormat
this makes ACodec to call sendFormatChange
which sends kWhatOutputFormatChange
event to NuPlayer which sends MEDIA_SET_VIDEO_SIZE
to media player. At the second side of stick you will get native_window_set_buffers_geometry
which forces Surface::setBuffersDimensions
.
While OMXCodec is used OMX_IndexConfigCommonOutputCrop
received sets mOutputPortSettingsHaveChanged
, nearest call of OMXCodec::read
will return INFO_FORMAT_CHANGED
this in AwesomePlayer will make notifyVideoSize_l
to be called and this one sends to listener MEDIA_SET_VIDEO_SIZE