mirror of
https://github.com/samsonjs/media.git
synced 2026-04-12 12:25:47 +00:00
Fix buffered position when loading has not completed
If there is data after the last samples in the container, we may request continue loading after the last samples have been read but before the load has completed. In this situation the buffered position is returned as Long.MAX_VALUE, which prevents continuing loading, yet the media period is not treated as fully buffered because its buffered position is not C.TIME_END_OF_SOURCE. PiperOrigin-RevId: 231406964
This commit is contained in:
parent
f4e7af3fd0
commit
52ff1820df
1 changed files with 2 additions and 3 deletions
|
|
@ -358,10 +358,9 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||
} else if (isPendingReset()) {
|
||||
return pendingResetPositionUs;
|
||||
}
|
||||
long largestQueuedTimestampUs = C.TIME_UNSET;
|
||||
long largestQueuedTimestampUs = Long.MAX_VALUE;
|
||||
if (haveAudioVideoTracks) {
|
||||
// Ignore non-AV tracks, which may be sparse or poorly interleaved.
|
||||
largestQueuedTimestampUs = Long.MAX_VALUE;
|
||||
int trackCount = sampleQueues.length;
|
||||
for (int i = 0; i < trackCount; i++) {
|
||||
if (trackIsAudioVideoFlags[i] && !sampleQueues[i].isLastSampleQueued()) {
|
||||
|
|
@ -370,7 +369,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||
}
|
||||
}
|
||||
}
|
||||
if (largestQueuedTimestampUs == C.TIME_UNSET) {
|
||||
if (largestQueuedTimestampUs == Long.MAX_VALUE) {
|
||||
largestQueuedTimestampUs = getLargestQueuedTimestampUs();
|
||||
}
|
||||
return largestQueuedTimestampUs == Long.MIN_VALUE ? lastSeekPositionUs
|
||||
|
|
|
|||
Loading…
Reference in a new issue