Fix not able to set a null output surface.

Previously, after calling MCVR.setOutput() with null, `frameProcessorManager`'s output surface is cleared. What was unexpected is `ExoPlayerInternal` notifies a zero output resolution after clearing the output surface. This zero resolution causes FrameProcessor to fail.

PiperOrigin-RevId: 501861993
This commit is contained in:
claincly 2023-01-13 17:02:58 +00:00 committed by Rohit Singh
parent e773031927
commit 07fe60710c

View File

@ -682,7 +682,10 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
break;
case MSG_SET_VIDEO_OUTPUT_RESOLUTION:
Size outputResolution = (Size) checkNotNull(message);
if (displaySurface != null && frameProcessorManager.isEnabled()) {
if (outputResolution.getWidth() != 0
&& outputResolution.getHeight() != 0
&& displaySurface != null
&& frameProcessorManager.isEnabled()) {
frameProcessorManager.setOutputSurfaceInfo(displaySurface, outputResolution);
}
break;
@ -2047,6 +2050,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
checkNotNull(frameProcessor).setOutputSurfaceInfo(null);
currentSurfaceAndSize = null;
}
/**
* Sets the input surface info.
*