diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/player/DashRendererBuilder.java b/demo/src/main/java/com/google/android/exoplayer/demo/player/DashRendererBuilder.java index d52d4ce927..a097db7745 100644 --- a/demo/src/main/java/com/google/android/exoplayer/demo/player/DashRendererBuilder.java +++ b/demo/src/main/java/com/google/android/exoplayer/demo/player/DashRendererBuilder.java @@ -274,7 +274,7 @@ public class DashRendererBuilder implements RendererBuilder { new AdaptiveEvaluator(bandwidthMeter), LIVE_EDGE_LATENCY_MS, elapsedRealtimeOffset, mainHandler, player); ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl, - VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_VIDEO); videoRenderer = new MediaCodecVideoTrackRenderer(videoSampleSource, drmSessionManager, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000, null, mainHandler, player, 50); @@ -332,7 +332,7 @@ public class DashRendererBuilder implements RendererBuilder { audioTrackNameList.toArray(audioTrackNames); audioChunkSource = new MultiTrackChunkSource(audioChunkSourceList); SampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl, - AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_AUDIO); audioRenderer = new MediaCodecAudioTrackRenderer(audioSampleSource, drmSessionManager, true, mainHandler, player); @@ -370,7 +370,7 @@ public class DashRendererBuilder implements RendererBuilder { textTrackNameList.toArray(textTrackNames); textChunkSource = new MultiTrackChunkSource(textChunkSourceList); SampleSource textSampleSource = new ChunkSampleSource(textChunkSource, loadControl, - TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_TEXT); textRenderer = new TextTrackRenderer(textSampleSource, player, mainHandler.getLooper(), new TtmlParser(), new WebvttParser()); diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/player/HlsRendererBuilder.java b/demo/src/main/java/com/google/android/exoplayer/demo/player/HlsRendererBuilder.java index db28670e4d..a8a913d1a5 100644 --- a/demo/src/main/java/com/google/android/exoplayer/demo/player/HlsRendererBuilder.java +++ b/demo/src/main/java/com/google/android/exoplayer/demo/player/HlsRendererBuilder.java @@ -150,7 +150,7 @@ public class HlsRendererBuilder implements RendererBuilder { HlsChunkSource chunkSource = new HlsChunkSource(dataSource, url, manifest, bandwidthMeter, variantIndices, HlsChunkSource.ADAPTIVE_MODE_SPLICE, audioCapabilities); HlsSampleSource sampleSource = new HlsSampleSource(chunkSource, loadControl, - BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, DemoPlayer.TYPE_VIDEO); + BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_VIDEO); MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(sampleSource, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000, mainHandler, player, 50); MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); diff --git a/demo/src/main/java/com/google/android/exoplayer/demo/player/SmoothStreamingRendererBuilder.java b/demo/src/main/java/com/google/android/exoplayer/demo/player/SmoothStreamingRendererBuilder.java index 818cf701b8..4e80aa4bfe 100644 --- a/demo/src/main/java/com/google/android/exoplayer/demo/player/SmoothStreamingRendererBuilder.java +++ b/demo/src/main/java/com/google/android/exoplayer/demo/player/SmoothStreamingRendererBuilder.java @@ -196,7 +196,7 @@ public class SmoothStreamingRendererBuilder implements RendererBuilder { videoStreamElementIndex, videoTrackIndices, videoDataSource, new AdaptiveEvaluator(bandwidthMeter), LIVE_EDGE_LATENCY_MS); ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl, - VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_VIDEO); videoRenderer = new MediaCodecVideoTrackRenderer(videoSampleSource, drmSessionManager, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000, null, mainHandler, player, 50); @@ -227,7 +227,7 @@ public class SmoothStreamingRendererBuilder implements RendererBuilder { } audioChunkSource = new MultiTrackChunkSource(audioChunkSources); ChunkSampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource, loadControl, - AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_AUDIO); audioRenderer = new MediaCodecAudioTrackRenderer(audioSampleSource, drmSessionManager, true, mainHandler, player); @@ -258,7 +258,7 @@ public class SmoothStreamingRendererBuilder implements RendererBuilder { } textChunkSource = new MultiTrackChunkSource(textChunkSources); ChunkSampleSource ttmlSampleSource = new ChunkSampleSource(textChunkSource, loadControl, - TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true, mainHandler, player, + TEXT_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, mainHandler, player, DemoPlayer.TYPE_TEXT); textRenderer = new TextTrackRenderer(ttmlSampleSource, player, mainHandler.getLooper(), new TtmlParser()); diff --git a/demo_misc/webm_sw_decoder/src/main/java/com/google/android/exoplayer/demo/webm/DashRendererBuilder.java b/demo_misc/webm_sw_decoder/src/main/java/com/google/android/exoplayer/demo/webm/DashRendererBuilder.java index afafc1e639..377d7611ae 100644 --- a/demo_misc/webm_sw_decoder/src/main/java/com/google/android/exoplayer/demo/webm/DashRendererBuilder.java +++ b/demo_misc/webm_sw_decoder/src/main/java/com/google/android/exoplayer/demo/webm/DashRendererBuilder.java @@ -114,7 +114,7 @@ public class DashRendererBuilder implements ManifestCallback readOnlyMediaChunks; private final DefaultTrackOutput sampleQueue; private final int bufferSizeContribution; - private final boolean frameAccurateSeeking; private final Handler eventHandler; private final EventListener eventListener; private final int minLoadableRetryCount; @@ -91,24 +90,23 @@ public class ChunkSampleSource implements SampleSource, SampleSourceReader, Load private Format downstreamFormat; public ChunkSampleSource(ChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking) { - this(chunkSource, loadControl, bufferSizeContribution, frameAccurateSeeking, null, null, 0); + int bufferSizeContribution) { + this(chunkSource, loadControl, bufferSizeContribution, null, null, 0); } public ChunkSampleSource(ChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking, Handler eventHandler, - EventListener eventListener, int eventSourceId) { - this(chunkSource, loadControl, bufferSizeContribution, frameAccurateSeeking, eventHandler, - eventListener, eventSourceId, DEFAULT_MIN_LOADABLE_RETRY_COUNT); + int bufferSizeContribution, Handler eventHandler, EventListener eventListener, + int eventSourceId) { + this(chunkSource, loadControl, bufferSizeContribution, eventHandler, eventListener, + eventSourceId, DEFAULT_MIN_LOADABLE_RETRY_COUNT); } public ChunkSampleSource(ChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking, Handler eventHandler, - EventListener eventListener, int eventSourceId, int minLoadableRetryCount) { + int bufferSizeContribution, Handler eventHandler, EventListener eventListener, + int eventSourceId, int minLoadableRetryCount) { this.chunkSource = chunkSource; this.loadControl = loadControl; this.bufferSizeContribution = bufferSizeContribution; - this.frameAccurateSeeking = frameAccurateSeeking; this.eventHandler = eventHandler; this.eventListener = eventListener; this.eventSourceId = eventSourceId; @@ -250,7 +248,7 @@ public class ChunkSampleSource implements SampleSource, SampleSourceReader, Load } if (sampleQueue.getSample(sampleHolder)) { - boolean decodeOnly = frameAccurateSeeking && sampleHolder.timeUs < lastSeekPositionUs; + boolean decodeOnly = sampleHolder.timeUs < lastSeekPositionUs; sampleHolder.flags |= decodeOnly ? C.SAMPLE_FLAG_DECODE_ONLY : 0; onSampleRead(currentChunk, sampleHolder); return SAMPLE_READ; diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java b/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java index 3a6a4b14e7..a81c866892 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java @@ -154,7 +154,6 @@ public class ExtractorSampleSource implements SampleSource, SampleSourceReader, private final int requestedBufferSize; private final SparseArray sampleQueues; private final int minLoadableRetryCount; - private final boolean frameAccurateSeeking; private final Uri uri; private final DataSource dataSource; @@ -269,7 +268,6 @@ public class ExtractorSampleSource implements SampleSource, SampleSourceReader, extractorHolder = new ExtractorHolder(extractors, this); sampleQueues = new SparseArray<>(); pendingResetPositionUs = NO_RESET_PENDING; - frameAccurateSeeking = true; } @Override @@ -390,7 +388,7 @@ public class ExtractorSampleSource implements SampleSource, SampleSourceReader, } if (sampleQueue.getSample(sampleHolder)) { - boolean decodeOnly = frameAccurateSeeking && sampleHolder.timeUs < lastSeekPositionUs; + boolean decodeOnly = sampleHolder.timeUs < lastSeekPositionUs; sampleHolder.flags |= decodeOnly ? C.SAMPLE_FLAG_DECODE_ONLY : 0; if (havePendingNextSampleUs) { // Set the offset to make the timestamp of this sample equal to pendingNextSampleUs. diff --git a/library/src/main/java/com/google/android/exoplayer/hls/HlsSampleSource.java b/library/src/main/java/com/google/android/exoplayer/hls/HlsSampleSource.java index cf33fa7236..39e47a7aec 100644 --- a/library/src/main/java/com/google/android/exoplayer/hls/HlsSampleSource.java +++ b/library/src/main/java/com/google/android/exoplayer/hls/HlsSampleSource.java @@ -56,7 +56,6 @@ public class HlsSampleSource implements SampleSource, SampleSourceReader, Loader private final HlsChunkSource chunkSource; private final LinkedList extractors; - private final boolean frameAccurateSeeking; private final int minLoadableRetryCount; private final int bufferSizeContribution; @@ -92,24 +91,23 @@ public class HlsSampleSource implements SampleSource, SampleSourceReader, Loader private long currentLoadStartTimeMs; public HlsSampleSource(HlsChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking) { - this(chunkSource, loadControl, bufferSizeContribution, frameAccurateSeeking, null, null, 0); + int bufferSizeContribution) { + this(chunkSource, loadControl, bufferSizeContribution, null, null, 0); } public HlsSampleSource(HlsChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking, Handler eventHandler, - EventListener eventListener, int eventSourceId) { - this(chunkSource, loadControl, bufferSizeContribution, frameAccurateSeeking, eventHandler, - eventListener, eventSourceId, DEFAULT_MIN_LOADABLE_RETRY_COUNT); + int bufferSizeContribution, Handler eventHandler, EventListener eventListener, + int eventSourceId) { + this(chunkSource, loadControl, bufferSizeContribution, eventHandler, eventListener, + eventSourceId, DEFAULT_MIN_LOADABLE_RETRY_COUNT); } public HlsSampleSource(HlsChunkSource chunkSource, LoadControl loadControl, - int bufferSizeContribution, boolean frameAccurateSeeking, Handler eventHandler, - EventListener eventListener, int eventSourceId, int minLoadableRetryCount) { + int bufferSizeContribution, Handler eventHandler, EventListener eventListener, + int eventSourceId, int minLoadableRetryCount) { this.chunkSource = chunkSource; this.loadControl = loadControl; this.bufferSizeContribution = bufferSizeContribution; - this.frameAccurateSeeking = frameAccurateSeeking; this.minLoadableRetryCount = minLoadableRetryCount; this.eventHandler = eventHandler; this.eventListener = eventListener; @@ -298,7 +296,7 @@ public class HlsSampleSource implements SampleSource, SampleSourceReader, Loader } if (extractor.getSample(track, sampleHolder)) { - boolean decodeOnly = frameAccurateSeeking && sampleHolder.timeUs < lastSeekPositionUs; + boolean decodeOnly = sampleHolder.timeUs < lastSeekPositionUs; sampleHolder.flags |= decodeOnly ? C.SAMPLE_FLAG_DECODE_ONLY : 0; return SAMPLE_READ; }