com.google.android.exoplayer.dash.mpd.MediaPresentationDescription

Here are the examples of the java api class com.google.android.exoplayer.dash.mpd.MediaPresentationDescription taken from open source projects.

1. DashTest#testDashPlayback()

Project: ExoPlayer
File: DashTest.java
private void testDashPlayback(HostActivity activity, String streamName, ActionSchedule actionSchedule, boolean fullPlaybackNoSeeking, String manifestFileName, String audioFormat, boolean canIncludeAdditionalVideoFormats, String... videoFormats) throws IOException {
    MediaPresentationDescription mpd = TestUtil.loadManifest(activity, TAG, MANIFEST_URL_PREFIX + manifestFileName, new MediaPresentationDescriptionParser());
    MetricsLogger metricsLogger = MetricsLogger.Factory.createDefault(getInstrumentation(), TAG, REPORT_NAME, streamName);
    DashHostedTest test = new DashHostedTest(streamName, mpd, metricsLogger, fullPlaybackNoSeeking, audioFormat, canIncludeAdditionalVideoFormats, false, actionSchedule, videoFormats);
    activity.runTest(test, mpd.duration + MAX_ADDITIONAL_TIME_MS);
    // non-CDD required formats (b/28220076).
    if (test.needsCddLimitedRetry) {
        metricsLogger = MetricsLogger.Factory.createDefault(getInstrumentation(), TAG, REPORT_NAME, streamName + "_cdd_limited_retry");
        test = new DashHostedTest(streamName, mpd, metricsLogger, fullPlaybackNoSeeking, audioFormat, false, true, actionSchedule, videoFormats);
        activity.runTest(test, mpd.duration + MAX_ADDITIONAL_TIME_MS);
    }
}

2. DashChunkSource#continueBuffering()

Project: ExoPlayer
File: DashChunkSource.java
@Override
public void continueBuffering(long playbackPositionUs) {
    if (manifestFetcher == null || !currentManifest.dynamic || fatalError != null) {
        return;
    }
    MediaPresentationDescription newManifest = manifestFetcher.getManifest();
    if (newManifest != null && newManifest != processedManifest) {
        processManifest(newManifest);
        // Manifests may be rejected, so the new manifest may not become the next currentManifest.
        // Track a manifest has been processed to avoid processing twice when it was discarded.
        processedManifest = newManifest;
    }
    // TODO: This is a temporary hack to avoid constantly refreshing the MPD in cases where
    // minUpdatePeriod is set to 0. In such cases we shouldn't refresh unless there is explicit
    // signaling in the stream, according to:
    // http://azure.microsoft.com/blog/2014/09/13/dash-live-streaming-with-azure-media-service/
    long minUpdatePeriod = currentManifest.minUpdatePeriod;
    if (minUpdatePeriod == 0) {
        minUpdatePeriod = 5000;
    }
    if (android.os.SystemClock.elapsedRealtime() > manifestFetcher.getManifestLoadStartTimestamp() + minUpdatePeriod) {
        manifestFetcher.requestRefresh();
    }
}

3. DashChunkSourceTest#checkLiveEdgeConsistencyWithTemplateAndLimitedTimeshift()

Project: ExoPlayer
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTemplateAndLimitedTimeshift(long durationMs, long liveEdgeLatencyMs, long seekPositionMs, long availableRangeStartMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) {
    MediaPresentationDescription mpd = buildLiveMpdWithTemplate(durationMs, true);
    checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
}

4. DashChunkSourceTest#checkLiveEdgeConsistencyWithTemplateAndUnlimitedTimeshift()

Project: ExoPlayer
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTemplateAndUnlimitedTimeshift(long durationMs, long liveEdgeLatencyMs, long availablePositionMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) {
    MediaPresentationDescription mpd = buildLiveMpdWithTemplate(durationMs, false);
    checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, availablePositionMs, 0, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
}

5. DashChunkSourceTest#checkLiveEdgeConsistencyWithTimeline()

Project: ExoPlayer
File: DashChunkSourceTest.java
private static void checkLiveEdgeConsistencyWithTimeline(long durationMs, long timelineStartMs, long liveEdgeLatencyMs, long seekPositionMs, long availableRangeStartMs, long availableRangeEndMs, long chunkStartTimeMs, long chunkEndTimeMs) {
    MediaPresentationDescription mpd = buildLiveMpdWithTimeline(durationMs, timelineStartMs);
    checkLiveEdgeConsistency(mpd, liveEdgeLatencyMs, seekPositionMs, availableRangeStartMs, availableRangeEndMs, chunkStartTimeMs, chunkEndTimeMs);
}

6. DashChunkSourceTest#testSegmentRequestSequenceOnMultiPeriodLiveWithTemplate()

Project: ExoPlayer
File: DashChunkSourceTest.java
public void testSegmentRequestSequenceOnMultiPeriodLiveWithTemplate() {
    MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTemplate();
    DashChunkSource chunkSource = buildDashChunkSource(mpd);
    checkSegmentRequestSequenceOnMultiPeriodLive(chunkSource);
}

7. DashChunkSourceTest#testSegmentRequestSequenceOnMultiPeriodLiveWithTimeline()

Project: ExoPlayer
File: DashChunkSourceTest.java
public void testSegmentRequestSequenceOnMultiPeriodLiveWithTimeline() {
    MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTimeline();
    DashChunkSource chunkSource = buildDashChunkSource(mpd);
    checkSegmentRequestSequenceOnMultiPeriodLive(chunkSource);
}

8. DashChunkSourceTest#testGetSeekRangeOnMultiPeriodLiveWithTimeline()

Project: ExoPlayer
File: DashChunkSourceTest.java
public void testGetSeekRangeOnMultiPeriodLiveWithTimeline() {
    MediaPresentationDescription mpd = buildMultiPeriodLiveMpdWithTimeline();
    DashChunkSource chunkSource = buildDashChunkSource(mpd);
    TimeRange availableRange = chunkSource.getAvailableRange();
    checkAvailableRange(availableRange, 0, MULTI_PERIOD_LIVE_DURATION_MS * 1000);
}

9. DashChunkSourceTest#testGetAvailableRangeOnLiveWithTimeline()

Project: ExoPlayer
File: DashChunkSourceTest.java
public void testGetAvailableRangeOnLiveWithTimeline() {
    MediaPresentationDescription mpd = buildLiveMpdWithTimeline(LIVE_DURATION_MS, 0);
    DashChunkSource chunkSource = buildDashChunkSource(mpd);
    TimeRange availableRange = chunkSource.getAvailableRange();
    checkAvailableRange(availableRange, 0, LIVE_DURATION_MS * 1000);
}