Fix outputHeight pass-through condition.

The outputHeight in the TransformationRequest is the height of
the frame as it would be displayed (i.e., after applying any
rotation specified in the format). So pass-through should only
be used if the requested outputHeight matches the input
format's height after applying the rotation.

PiperOrigin-RevId: 457934867
This commit is contained in:
hschlueter 2022-06-29 10:28:54 +00:00 committed by Rohit Singh
parent 5c7ec13e85
commit c74cf1f1aa

View File

@ -148,8 +148,11 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
if (transformationRequest.scaleY != 1f) {
return false;
}
// The decoder rotates encoded frames for display by inputFormat.rotationDegrees.
int decodedHeight =
(inputFormat.rotationDegrees % 180 == 0) ? inputFormat.height : inputFormat.width;
if (transformationRequest.outputHeight != C.LENGTH_UNSET
&& transformationRequest.outputHeight != inputFormat.height) {
&& transformationRequest.outputHeight != decodedHeight) {
return false;
}
if (!effects.isEmpty()) {