Update the TransformerMediaClock trackTime before deducting the offset.

#minor-release

PiperOrigin-RevId: 407086818
This commit is contained in:
samrobinson 2021-11-02 15:18:29 +00:00 committed by Ian Baker
parent 8b34d160dc
commit 04efc03d4b
4 changed files with 4 additions and 5 deletions

View File

@ -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();

View File

@ -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;
}

View File

@ -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) {

View File

@ -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);