From 04efc03d4b2cd5164b6467bba7e4cdef27c3eb64 Mon Sep 17 00:00:00 2001 From: samrobinson Date: Tue, 2 Nov 2021 15:18:29 +0000 Subject: [PATCH] Update the TransformerMediaClock trackTime before deducting the offset. #minor-release PiperOrigin-RevId: 407086818 --- .../androidx/media3/transformer/TransformerAudioRenderer.java | 2 +- .../androidx/media3/transformer/TransformerBaseRenderer.java | 3 +-- .../media3/transformer/TransformerMuxingVideoRenderer.java | 2 +- .../transformer/TransformerTranscodingVideoRenderer.java | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java index 0f6f1089d1..236243b9c9 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java @@ -279,8 +279,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; int result = readSource(getFormatHolder(), decoderInputBuffer, /* readFlags= */ 0); switch (result) { case C.RESULT_BUFFER_READ: - decoderInputBuffer.timeUs -= streamOffsetUs; mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs); + decoderInputBuffer.timeUs -= streamOffsetUs; decoderInputBuffer.flip(); decoder.queueInputBuffer(decoderInputBuffer); return !decoderInputBuffer.isEndOfStream(); diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java index 00cf5f7560..8d6a368c3e 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java @@ -48,8 +48,7 @@ import androidx.media3.exoplayer.RendererCapabilities; } @Override - protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) - throws ExoPlaybackException { + protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) { this.streamOffsetUs = offsetUs; } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMuxingVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMuxingVideoRenderer.java index 2ecf731d36..2704c0d42f 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMuxingVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMuxingVideoRenderer.java @@ -117,8 +117,8 @@ import java.nio.ByteBuffer; muxerWrapper.endTrack(getTrackType()); return false; } - buffer.timeUs -= streamOffsetUs; mediaClock.updateTimeForTrackType(getTrackType(), buffer.timeUs); + buffer.timeUs -= streamOffsetUs; ByteBuffer data = checkNotNull(buffer.data); data.flip(); if (sampleTransformer != null) { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerTranscodingVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerTranscodingVideoRenderer.java index 61998b2366..9896b88517 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerTranscodingVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerTranscodingVideoRenderer.java @@ -320,8 +320,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; case C.RESULT_FORMAT_READ: throw new IllegalStateException("Format changes are not supported."); case C.RESULT_BUFFER_READ: - decoderInputBuffer.timeUs -= streamOffsetUs; mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs); + decoderInputBuffer.timeUs -= streamOffsetUs; ByteBuffer data = checkNotNull(decoderInputBuffer.data); data.flip(); decoder.queueInputBuffer(decoderInputBuffer);