Tighten two MediaCodecRenderer fields to @MonotonicNonNull

Remove some `checkNotNull` calls that are no longer needed.

PiperOrigin-RevId: 717597046
This commit is contained in:
ibaker 2025-01-20 12:12:40 -08:00 committed by Copybara-Service
parent 7c10ef03e4
commit 5421a74d06

View File

@ -86,6 +86,7 @@ import java.nio.ByteOrder;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull;
/** An abstract renderer that uses {@link MediaCodec} to decode samples for rendering. */ /** An abstract renderer that uses {@link MediaCodec} to decode samples for rendering. */
@ -331,10 +332,10 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
private final OggOpusAudioPacketizer oggOpusAudioPacketizer; private final OggOpusAudioPacketizer oggOpusAudioPacketizer;
@Nullable private Format inputFormat; @Nullable private Format inputFormat;
@Nullable private Format outputFormat; private @MonotonicNonNull Format outputFormat;
@Nullable private DrmSession codecDrmSession; @Nullable private DrmSession codecDrmSession;
@Nullable private DrmSession sourceDrmSession; @Nullable private DrmSession sourceDrmSession;
@Nullable private WakeupListener wakeupListener; private @MonotonicNonNull WakeupListener wakeupListener;
/** /**
* A framework {@link MediaCrypto} for use with {@link MediaCodec#queueSecureInputBuffer(int, int, * A framework {@link MediaCrypto} for use with {@link MediaCodec#queueSecureInputBuffer(int, int,
@ -836,8 +837,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
public void handleMessage(@MessageType int messageType, @Nullable Object message) public void handleMessage(@MessageType int messageType, @Nullable Object message)
throws ExoPlaybackException { throws ExoPlaybackException {
if (messageType == MSG_SET_WAKEUP_LISTENER) { if (messageType == MSG_SET_WAKEUP_LISTENER) {
wakeupListener = (WakeupListener) message; wakeupListener = checkNotNull((WakeupListener) message);
onWakeupListenerSet(checkNotNull(wakeupListener)); onWakeupListenerSet(wakeupListener);
} else { } else {
super.handleMessage(messageType, message); super.handleMessage(messageType, message);
} }
@ -2468,11 +2469,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
// TODO(b/298634018): Adjust encoderDelay value based on starting position. // TODO(b/298634018): Adjust encoderDelay value based on starting position.
int numberPreSkipSamples = int numberPreSkipSamples =
OpusUtil.getPreSkipSamples(outputFormat.initializationData.get(0)); OpusUtil.getPreSkipSamples(outputFormat.initializationData.get(0));
outputFormat = outputFormat = outputFormat.buildUpon().setEncoderDelay(numberPreSkipSamples).build();
checkNotNull(outputFormat)
.buildUpon()
.setEncoderDelay(numberPreSkipSamples)
.build();
} }
onOutputFormatChanged(outputFormat, /* mediaFormat= */ null); onOutputFormatChanged(outputFormat, /* mediaFormat= */ null);
waitingForFirstSampleInFormat = false; waitingForFirstSampleInFormat = false;
@ -2491,8 +2488,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
getLastResetPositionUs(), bypassSampleBuffer.timeUs)) { getLastResetPositionUs(), bypassSampleBuffer.timeUs)) {
// Packetize as long as frame does not precede the last reset position by more than // Packetize as long as frame does not precede the last reset position by more than
// seek-preroll. // seek-preroll.
oggOpusAudioPacketizer.packetize( oggOpusAudioPacketizer.packetize(bypassSampleBuffer, outputFormat.initializationData);
bypassSampleBuffer, checkNotNull(outputFormat).initializationData);
} }
} }
if (!haveBypassBatchBufferAndNewSampleSameDecodeOnlyState() if (!haveBypassBatchBufferAndNewSampleSameDecodeOnlyState()