From e6bf3736122a4a989e85d90b97b70b0451e6fc8f Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 10 Oct 2017 12:39:34 -0700 Subject: [PATCH] Allow overriding of DefaultDashChunkSource.getNextChunk ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=171718775 --- .../source/dash/DefaultDashChunkSource.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java index dd62d47621..ec1c90bf75 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DefaultDashChunkSource.java @@ -173,7 +173,7 @@ public class DefaultDashChunkSource implements DashChunkSource { } @Override - public final void getNextChunk(MediaChunk previous, long playbackPositionUs, ChunkHolder out) { + public void getNextChunk(MediaChunk previous, long playbackPositionUs, ChunkHolder out) { if (fatalError != null) { return; } @@ -300,7 +300,7 @@ public class DefaultDashChunkSource implements DashChunkSource { trackSelection.indexOf(chunk.trackFormat), e); } - // Private methods. + // Internal methods. private ArrayList getRepresentations() { List manifestAdapationSets = manifest.getPeriod(periodIndex).adaptationSets; @@ -319,7 +319,12 @@ public class DefaultDashChunkSource implements DashChunkSource { } } - private static Chunk newInitializationChunk(RepresentationHolder representationHolder, + private long resolveTimeToLiveEdgeUs(long playbackPositionUs) { + boolean resolveTimeToLiveEdgePossible = manifest.dynamic && liveEdgeTimeUs != C.TIME_UNSET; + return resolveTimeToLiveEdgePossible ? liveEdgeTimeUs - playbackPositionUs : C.TIME_UNSET; + } + + protected static Chunk newInitializationChunk(RepresentationHolder representationHolder, DataSource dataSource, Format trackFormat, int trackSelectionReason, Object trackSelectionData, RangedUri initializationUri, RangedUri indexUri) { RangedUri requestUri; @@ -340,7 +345,7 @@ public class DefaultDashChunkSource implements DashChunkSource { trackSelectionReason, trackSelectionData, representationHolder.extractorWrapper); } - private static Chunk newMediaChunk(RepresentationHolder representationHolder, + protected static Chunk newMediaChunk(RepresentationHolder representationHolder, DataSource dataSource, int trackType, Format trackFormat, int trackSelectionReason, Object trackSelectionData, int firstSegmentNum, int maxSegmentCount) { Representation representation = representationHolder.representation;