mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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)).
|
([#6153](https://github.com/google/ExoPlayer/issues/6153)).
|
||||||
* Fix `DataSchemeDataSource` re-opening and range requests
|
* Fix `DataSchemeDataSource` re-opening and range requests
|
||||||
([#6192](https://github.com/google/ExoPlayer/issues/6192)).
|
([#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
|
* Flac extension: Parse `VORBIS_COMMENT` metadata
|
||||||
([#5527](https://github.com/google/ExoPlayer/issues/5527)).
|
([#5527](https://github.com/google/ExoPlayer/issues/5527)).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||||
@NullableType SampleStream[] streams,
|
@NullableType SampleStream[] streams,
|
||||||
boolean[] streamResetFlags,
|
boolean[] streamResetFlags,
|
||||||
long positionUs) {
|
long positionUs) {
|
||||||
|
positionUs = constrainSeekPosition(positionUs);
|
||||||
for (int i = 0; i < selections.length; i++) {
|
for (int i = 0; i < selections.length; i++) {
|
||||||
if (streams[i] != null && (selections[i] == null || !mayRetainStreamFlags[i])) {
|
if (streams[i] != null && (selections[i] == null || !mayRetainStreamFlags[i])) {
|
||||||
sampleStreams.remove(streams[i]);
|
sampleStreams.remove(streams[i]);
|
||||||
|
|
@ -143,6 +144,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long seekToUs(long positionUs) {
|
public long seekToUs(long positionUs) {
|
||||||
|
positionUs = constrainSeekPosition(positionUs);
|
||||||
for (int i = 0; i < sampleStreams.size(); i++) {
|
for (int i = 0; i < sampleStreams.size(); i++) {
|
||||||
((SilenceSampleStream) sampleStreams.get(i)).seekTo(positionUs);
|
((SilenceSampleStream) sampleStreams.get(i)).seekTo(positionUs);
|
||||||
}
|
}
|
||||||
|
|
@ -151,7 +153,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getAdjustedSeekPositionUs(long positionUs, SeekParameters seekParameters) {
|
public long getAdjustedSeekPositionUs(long positionUs, SeekParameters seekParameters) {
|
||||||
return positionUs;
|
return constrainSeekPosition(positionUs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -171,6 +173,10 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reevaluateBuffer(long positionUs) {}
|
public void reevaluateBuffer(long positionUs) {}
|
||||||
|
|
||||||
|
private long constrainSeekPosition(long positionUs) {
|
||||||
|
return Util.constrainValue(positionUs, 0, durationUs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class SilenceSampleStream implements SampleStream {
|
private static final class SilenceSampleStream implements SampleStream {
|
||||||
|
|
@ -186,7 +192,7 @@ public final class SilenceMediaSource extends BaseMediaSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void seekTo(long positionUs) {
|
public void seekTo(long positionUs) {
|
||||||
positionBytes = getAudioByteCount(positionUs);
|
positionBytes = Util.constrainValue(getAudioByteCount(positionUs), 0, durationBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue