diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java index 59604d5d02..a9f034d672 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/DefaultEncoderFactory.java @@ -229,24 +229,34 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { } MediaCodecInfo encoderInfo = encoderAndClosestFormatSupport.encoder; - format = encoderAndClosestFormatSupport.supportedFormat; + Format encoderSupportedFormat = encoderAndClosestFormatSupport.supportedFormat; VideoEncoderSettings supportedVideoEncoderSettings = encoderAndClosestFormatSupport.supportedEncoderSettings; - String mimeType = checkNotNull(format.sampleMimeType); - MediaFormat mediaFormat = MediaFormat.createVideoFormat(mimeType, format.width, format.height); - mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, round(format.frameRate)); + String mimeType = checkNotNull(encoderSupportedFormat.sampleMimeType); + MediaFormat mediaFormat = + MediaFormat.createVideoFormat( + mimeType, encoderSupportedFormat.width, encoderSupportedFormat.height); + mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, round(encoderSupportedFormat.frameRate)); int bitrate; if (supportedVideoEncoderSettings.enableHighQualityTargeting) { bitrate = new DeviceMappedEncoderBitrateProvider() - .getBitrate(encoderInfo.getName(), format.width, format.height, format.frameRate); + .getBitrate( + encoderInfo.getName(), + encoderSupportedFormat.width, + encoderSupportedFormat.height, + encoderSupportedFormat.frameRate); } else if (supportedVideoEncoderSettings.bitrate != VideoEncoderSettings.NO_VALUE) { bitrate = supportedVideoEncoderSettings.bitrate; } else { - bitrate = getSuggestedBitrate(format.width, format.height, format.frameRate); + bitrate = + getSuggestedBitrate( + encoderSupportedFormat.width, + encoderSupportedFormat.height, + encoderSupportedFormat.frameRate); } mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, bitrate); @@ -265,7 +275,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { adjustMediaFormatForH264EncoderSettings(mediaFormat, encoderInfo); } - MediaFormatUtil.maybeSetColorInfo(mediaFormat, format.colorInfo); + MediaFormatUtil.maybeSetColorInfo(mediaFormat, encoderSupportedFormat.colorInfo); mediaFormat.setInteger( MediaFormat.KEY_COLOR_FORMAT, supportedVideoEncoderSettings.colorProfile); @@ -301,7 +311,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { return new DefaultCodec( context, - format, + encoderSupportedFormat, mediaFormat, encoderInfo.getName(), /* isDecoder= */ false, @@ -394,7 +404,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { VideoEncoderSettings.NO_VALUE, VideoEncoderSettings.NO_VALUE); } - Format supportedEncoderFormat = + Format encoderSupportedFormat = requestedFormat .buildUpon() .setSampleMimeType(mimeType) @@ -403,7 +413,7 @@ public final class DefaultEncoderFactory implements Codec.EncoderFactory { .setAverageBitrate(closestSupportedBitrate) .build(); return new VideoEncoderQueryResult( - pickedEncoderInfo, supportedEncoderFormat, supportedEncodingSettingBuilder.build()); + pickedEncoderInfo, encoderSupportedFormat, supportedEncodingSettingBuilder.build()); } /** Returns a list of encoders that support the requested resolution most closely. */