Improve shouldTranscode() logic

PiperOrigin-RevId: 511767953
This commit is contained in:
kimvde 2023-02-23 14:17:52 +00:00 committed by Andrew Lewis
parent c5c171beba
commit 50f5e34583

View File

@ -485,12 +485,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
if (!assetLoaderCanOutputEncoded) { if (!assetLoaderCanOutputEncoded) {
shouldTranscode = true; shouldTranscode = true;
} else if (MimeTypes.isAudio(inputFormat.sampleMimeType)) { } else if (MimeTypes.isAudio(inputFormat.sampleMimeType)) {
shouldTranscode = shouldTranscode = shouldTranscodeAudio(inputFormat);
(mediaItemCount > 1 && !transmuxAudio) || shouldTranscodeAudio(inputFormat);
} else if (MimeTypes.isVideo(inputFormat.sampleMimeType)) { } else if (MimeTypes.isVideo(inputFormat.sampleMimeType)) {
shouldTranscode = shouldTranscode = shouldTranscodeVideo(inputFormat, streamStartPositionUs, streamOffsetUs);
(mediaItemCount > 1 && !transmuxVideo)
|| shouldTranscodeVideo(inputFormat, streamStartPositionUs, streamOffsetUs);
} }
checkState(!shouldTranscode || assetLoaderCanOutputDecoded); checkState(!shouldTranscode || assetLoaderCanOutputDecoded);
@ -499,6 +496,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
} }
private boolean shouldTranscodeAudio(Format inputFormat) { private boolean shouldTranscodeAudio(Format inputFormat) {
if (mediaItemCount > 1 && !transmuxAudio) {
return true;
}
if (encoderFactory.audioNeedsEncoding()) { if (encoderFactory.audioNeedsEncoding()) {
return true; return true;
} }
@ -535,6 +535,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private boolean shouldTranscodeVideo( private boolean shouldTranscodeVideo(
Format inputFormat, long streamStartPositionUs, long streamOffsetUs) { Format inputFormat, long streamStartPositionUs, long streamOffsetUs) {
if (mediaItemCount > 1 && !transmuxVideo) {
return true;
}
if ((streamStartPositionUs - streamOffsetUs) != 0 if ((streamStartPositionUs - streamOffsetUs) != 0
&& !firstEditedMediaItem.mediaItem.clippingConfiguration.startsAtKeyFrame) { && !firstEditedMediaItem.mediaItem.clippingConfiguration.startsAtKeyFrame) {
return true; return true;