Clarify format is supported by encoder.

#cleanup
#minor-release

PiperOrigin-RevId: 460688226
This commit is contained in:
samrobinson 2022-07-13 12:16:59 +00:00 committed by Rohit Singh
parent 918550060f
commit e0b46ece4e

View file

@ -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. */