mirror of
https://github.com/samsonjs/media.git
synced 2026-03-29 10:05:48 +00:00
Ensure the SilenceMediaSource position is in range
Issue: #6229 PiperOrigin-RevId: 260500986
This commit is contained in:
parent
d77d661e52
commit
3051e5e9ad
2 changed files with 10 additions and 2 deletions
|
|
@ -40,6 +40,8 @@
|
|||
([#6153](https://github.com/google/ExoPlayer/issues/6153)).
|
||||
* Fix `DataSchemeDataSource` re-opening and range requests
|
||||
([#6192](https://github.com/google/ExoPlayer/issues/6192)).
|
||||
* Ensure the `SilenceMediaSource` position is in range
|
||||
([#6229](https://github.com/google/ExoPlayer/issues/6229)).
|
||||
* Flac extension: Parse `VORBIS_COMMENT` metadata
|
||||
([#5527](https://github.com/google/ExoPlayer/issues/5527)).
|
||||
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
|||
@NullableType SampleStream[] streams,
|
||||
boolean[] streamResetFlags,
|
||||
long positionUs) {
|
||||
positionUs = constrainSeekPosition(positionUs);
|
||||
for (int i = 0; i < selections.length; i++) {
|
||||
if (streams[i] != null && (selections[i] == null || !mayRetainStreamFlags[i])) {
|
||||
sampleStreams.remove(streams[i]);
|
||||
|
|
@ -143,6 +144,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
|||
|
||||
@Override
|
||||
public long seekToUs(long positionUs) {
|
||||
positionUs = constrainSeekPosition(positionUs);
|
||||
for (int i = 0; i < sampleStreams.size(); i++) {
|
||||
((SilenceSampleStream) sampleStreams.get(i)).seekTo(positionUs);
|
||||
}
|
||||
|
|
@ -151,7 +153,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
|||
|
||||
@Override
|
||||
public long getAdjustedSeekPositionUs(long positionUs, SeekParameters seekParameters) {
|
||||
return positionUs;
|
||||
return constrainSeekPosition(positionUs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -171,6 +173,10 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
|||
|
||||
@Override
|
||||
public void reevaluateBuffer(long positionUs) {}
|
||||
|
||||
private long constrainSeekPosition(long positionUs) {
|
||||
return Util.constrainValue(positionUs, 0, durationUs);
|
||||
}
|
||||
}
|
||||
|
||||
private static final class SilenceSampleStream implements SampleStream {
|
||||
|
|
@ -186,7 +192,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
|||
}
|
||||
|
||||
public void seekTo(long positionUs) {
|
||||
positionBytes = getAudioByteCount(positionUs);
|
||||
positionBytes = Util.constrainValue(getAudioByteCount(positionUs), 0, durationBytes);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in a new issue