Update the TransformerMediaClock trackTime before deducting the offset.
#minor-release PiperOrigin-RevId: 407086818
This commit is contained in:
parent
8b34d160dc
commit
04efc03d4b
@ -279,8 +279,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
int result = readSource(getFormatHolder(), decoderInputBuffer, /* readFlags= */ 0);
|
int result = readSource(getFormatHolder(), decoderInputBuffer, /* readFlags= */ 0);
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case C.RESULT_BUFFER_READ:
|
case C.RESULT_BUFFER_READ:
|
||||||
decoderInputBuffer.timeUs -= streamOffsetUs;
|
|
||||||
mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs);
|
mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs);
|
||||||
|
decoderInputBuffer.timeUs -= streamOffsetUs;
|
||||||
decoderInputBuffer.flip();
|
decoderInputBuffer.flip();
|
||||||
decoder.queueInputBuffer(decoderInputBuffer);
|
decoder.queueInputBuffer(decoderInputBuffer);
|
||||||
return !decoderInputBuffer.isEndOfStream();
|
return !decoderInputBuffer.isEndOfStream();
|
||||||
|
@ -48,8 +48,7 @@ import androidx.media3.exoplayer.RendererCapabilities;
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs)
|
protected void onStreamChanged(Format[] formats, long startPositionUs, long offsetUs) {
|
||||||
throws ExoPlaybackException {
|
|
||||||
this.streamOffsetUs = offsetUs;
|
this.streamOffsetUs = offsetUs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,8 +117,8 @@ import java.nio.ByteBuffer;
|
|||||||
muxerWrapper.endTrack(getTrackType());
|
muxerWrapper.endTrack(getTrackType());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
buffer.timeUs -= streamOffsetUs;
|
|
||||||
mediaClock.updateTimeForTrackType(getTrackType(), buffer.timeUs);
|
mediaClock.updateTimeForTrackType(getTrackType(), buffer.timeUs);
|
||||||
|
buffer.timeUs -= streamOffsetUs;
|
||||||
ByteBuffer data = checkNotNull(buffer.data);
|
ByteBuffer data = checkNotNull(buffer.data);
|
||||||
data.flip();
|
data.flip();
|
||||||
if (sampleTransformer != null) {
|
if (sampleTransformer != null) {
|
||||||
|
@ -320,8 +320,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
case C.RESULT_FORMAT_READ:
|
case C.RESULT_FORMAT_READ:
|
||||||
throw new IllegalStateException("Format changes are not supported.");
|
throw new IllegalStateException("Format changes are not supported.");
|
||||||
case C.RESULT_BUFFER_READ:
|
case C.RESULT_BUFFER_READ:
|
||||||
decoderInputBuffer.timeUs -= streamOffsetUs;
|
|
||||||
mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs);
|
mediaClock.updateTimeForTrackType(getTrackType(), decoderInputBuffer.timeUs);
|
||||||
|
decoderInputBuffer.timeUs -= streamOffsetUs;
|
||||||
ByteBuffer data = checkNotNull(decoderInputBuffer.data);
|
ByteBuffer data = checkNotNull(decoderInputBuffer.data);
|
||||||
data.flip();
|
data.flip();
|
||||||
decoder.queueInputBuffer(decoderInputBuffer);
|
decoder.queueInputBuffer(decoderInputBuffer);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user