com.google.android.exoplayer.chunk.ChunkOperationHolder

Here are the examples of the java api class com.google.android.exoplayer.chunk.ChunkOperationHolder taken from open source projects.

1. DashChunkSourceTest#testSegmentIndexInitializationOnVod()

Project: ExoPlayer
File: DashChunkSourceTest.java
public void testSegmentIndexInitializationOnVod() {
    DashChunkSource chunkSource = new DashChunkSource(buildVodMpd(), DefaultDashTrackSelector.newVideoInstance(null, false, false), mock(DataSource.class), null);
    chunkSource.prepare();
    chunkSource.enable(0);
    List<MediaChunk> queue = new ArrayList<>();
    ChunkOperationHolder out = new ChunkOperationHolder();
    // request first chunk; should get back initialization chunk
    chunkSource.getChunkOperation(queue, 0, out);
    assertNotNull(out.chunk);
    assertNotNull(((InitializationChunk) out.chunk).dataSpec);
}

2. DashChunkSourceTest#checkSegmentRequestSequenceOnMultiPeriodLive()

Project: ExoPlayer
File: DashChunkSourceTest.java
private static void checkSegmentRequestSequenceOnMultiPeriodLive(DashChunkSource chunkSource) {
    List<MediaChunk> queue = new ArrayList<>();
    ChunkOperationHolder out = new ChunkOperationHolder();
    long seekPositionMs = 0;
    long availableRangeStartMs = 0;
    long availableRangeEndMs = MULTI_PERIOD_LIVE_DURATION_MS;
    long chunkStartTimeMs = 0;
    long chunkEndTimeMs = 1000;
    // request first chunk
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request second chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request third chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request fourth chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request fifth chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request sixth chunk; this is the first chunk in the 2nd period
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request seventh chunk;
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request eigth chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request ninth chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request tenth chunk
    chunkStartTimeMs += 1000;
    chunkEndTimeMs += 1000;
    out.chunk = null;
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
    queue.add((MediaChunk) out.chunk);
    // request "eleventh" chunk; this chunk isn't available yet, so we should get null
    out.chunk = null;
    chunkSource.getChunkOperation(queue, seekPositionMs * 1000, out);
    assertNull(out.chunk);
}

3. DashChunkSourceTest#checkLiveEdgeConsistency()

Project: ExoPlayer
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistency(MediaPresentationDescription mpd, long liveEdgeLatencyMs, long seekPositionMs, long availableRangeStartMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) {
    DashChunkSource chunkSource = buildDashChunkSource(mpd, true, liveEdgeLatencyMs);
    List<MediaChunk> queue = new ArrayList<>();
    ChunkOperationHolder out = new ChunkOperationHolder();
    checkLiveEdgeConsistency(chunkSource, queue, out, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
}