Simplify + Fix WV encrypted playback tests

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=149993442
This commit is contained in:
olly 2017-03-13 14:48:32 -07:00 committed by Oliver Woodman
parent 139252c9d3
commit 4b1410bced
4 changed files with 74 additions and 84 deletions

View File

@ -135,13 +135,12 @@ public final class DashHostedTest extends ExoHostedTest {
} }
public Builder setManifestUrl(String manifestUrl) { public Builder setManifestUrl(String manifestUrl) {
this.manifestUrl = MANIFEST_URL_PREFIX + manifestUrl; this.manifestUrl = manifestUrl;
return this; return this;
} }
public Builder setManifestUrlForWidevine(String manifestUrl, String videoMimeType) { public Builder setWidevineMimeType(String mimeType) {
this.useL1Widevine = isL1WidevineAvailable(videoMimeType); this.useL1Widevine = isL1WidevineAvailable(mimeType);
this.manifestUrl = getWidevineManifestUrl(manifestUrl, useL1Widevine);
this.widevineLicenseUrl = getWidevineLicenseUrl(useL1Widevine); this.widevineLicenseUrl = getWidevineLicenseUrl(useL1Widevine);
return this; return this;
} }
@ -177,13 +176,6 @@ public final class DashHostedTest extends ExoHostedTest {
private static final int MAX_CONSECUTIVE_DROPPED_VIDEO_FRAMES = 10; private static final int MAX_CONSECUTIVE_DROPPED_VIDEO_FRAMES = 10;
private static final float MAX_DROPPED_VIDEO_FRAME_FRACTION = 0.01f; private static final float MAX_DROPPED_VIDEO_FRAME_FRACTION = 0.01f;
private static final String MANIFEST_URL_PREFIX = "https://storage.googleapis.com/exoplayer-test-"
+ "media-1/gen-4/screens/dash-vod-single-segment/";
// TODO: Don't need separate suffixes. Clean up.
private static final String WIDEVINE_L1_SUFFIX = ".mpd";
private static final String WIDEVINE_L3_SUFFIX = ".mpd";
private static final String WIDEVINE_LICENSE_URL = private static final String WIDEVINE_LICENSE_URL =
"https://proxy.uat.widevine.com/proxy?provider=widevine_test&video_id="; "https://proxy.uat.widevine.com/proxy?provider=widevine_test&video_id=";
private static final String WIDEVINE_SW_CRYPTO_CONTENT_ID = "exoplayer_test_1"; private static final String WIDEVINE_SW_CRYPTO_CONTENT_ID = "exoplayer_test_1";
@ -204,11 +196,6 @@ public final class DashHostedTest extends ExoHostedTest {
boolean needsCddLimitedRetry; boolean needsCddLimitedRetry;
public static String getWidevineManifestUrl(String manifestUrl, boolean useL1Widevine) {
return MANIFEST_URL_PREFIX + manifestUrl
+ (useL1Widevine ? WIDEVINE_L1_SUFFIX : WIDEVINE_L3_SUFFIX);
}
public static String getWidevineLicenseUrl(boolean useL1Widevine) { public static String getWidevineLicenseUrl(boolean useL1Widevine) {
return WIDEVINE_LICENSE_URL return WIDEVINE_LICENSE_URL
+ (useL1Widevine ? WIDEVINE_HW_SECURE_DECODE_CONTENT_ID : WIDEVINE_SW_CRYPTO_CONTENT_ID); + (useL1Widevine ? WIDEVINE_HW_SECURE_DECODE_CONTENT_ID : WIDEVINE_SW_CRYPTO_CONTENT_ID);
@ -216,13 +203,12 @@ public final class DashHostedTest extends ExoHostedTest {
@TargetApi(18) @TargetApi(18)
@SuppressWarnings("ResourceType") @SuppressWarnings("ResourceType")
public static boolean isL1WidevineAvailable(String videoMimeType) { public static boolean isL1WidevineAvailable(String mimeType) {
try { try {
// Force L3 if secure decoder is not available. // Force L3 if secure decoder is not available.
if (MediaCodecUtil.getDecoderInfo(videoMimeType, true) == null) { if (MediaCodecUtil.getDecoderInfo(mimeType, true) == null) {
return false; return false;
} }
MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID); MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID);
String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY); String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY);
mediaDrm.release(); mediaDrm.release();

View File

@ -214,7 +214,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_FIXED) DashTestData.VP9_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -229,7 +229,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -245,7 +245,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -261,7 +261,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -326,8 +326,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h264_fixed") .setStreamName("test_widevine_h264_fixed")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -342,8 +342,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h264_adaptive") .setStreamName("test_widevine_h264_adaptive")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -358,8 +358,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h264_adaptive_with_seeking") .setStreamName("test_widevine_h264_adaptive_with_seeking")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
@ -375,8 +375,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h264_adaptive_with_renderer_disabling") .setStreamName("test_widevine_h264_adaptive_with_renderer_disabling")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
@ -394,8 +394,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h265_fixed") .setStreamName("test_widevine_h265_fixed")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H265_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -410,8 +410,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h265_adaptive") .setStreamName("test_widevine_h265_adaptive")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H265_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -426,8 +426,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h265_adaptive_with_seeking") .setStreamName("test_widevine_h265_adaptive_with_seeking")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H265_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
@ -443,8 +443,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h265_adaptive_with_renderer_disabling") .setStreamName("test_widevine_h265_adaptive_with_renderer_disabling")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H265_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
@ -462,10 +462,11 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_vp9_fixed_360p") .setStreamName("test_widevine_vp9_fixed_360p")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_VP9_MANIFEST_PREFIX, MimeTypes.VIDEO_VP9) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_FIXED) DashTestData.WIDEVINE_VP9_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -477,10 +478,11 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_vp9_adaptive") .setStreamName("test_widevine_vp9_adaptive")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_VP9_MANIFEST_PREFIX, MimeTypes.VIDEO_VP9) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -492,11 +494,12 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_vp9_adaptive_with_seeking") .setStreamName("test_widevine_vp9_adaptive_with_seeking")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_VP9_MANIFEST_PREFIX, MimeTypes.VIDEO_VP9) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -508,11 +511,12 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_vp9_adaptive_with_renderer_disabling") .setStreamName("test_widevine_vp9_adaptive_with_renderer_disabling")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_VP9_MANIFEST_PREFIX, MimeTypes.VIDEO_VP9) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .runTest(getActivity(), getInstrumentation());
} }
@ -527,8 +531,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_23fps_h264_fixed") .setStreamName("test_widevine_23fps_h264_fixed")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_23_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_23_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -544,8 +548,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_24fps_h264_fixed") .setStreamName("test_widevine_24fps_h264_fixed")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_24_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_24_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
@ -561,8 +565,8 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
} }
new DashHostedTest.Builder(TAG) new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_29fps_h264_fixed") .setStreamName("test_widevine_29fps_h264_fixed")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_29_MANIFEST_PREFIX, .setManifestUrl(DashTestData.WIDEVINE_H264_29_MANIFEST)
MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,

View File

@ -22,20 +22,22 @@ import com.google.android.exoplayer2.util.Util;
*/ */
public final class DashTestData { public final class DashTestData {
private static final String BASE_URL = "https://storage.googleapis.com/exoplayer-test-media-1/"
+ "gen-4/screens/dash-vod-single-segment/";
// Clear content manifests. // Clear content manifests.
public static final String H264_MANIFEST = "manifest-h264.mpd"; public static final String H264_MANIFEST = BASE_URL + "manifest-h264.mpd";
public static final String H265_MANIFEST = "manifest-h265.mpd"; public static final String H265_MANIFEST = BASE_URL + "manifest-h265.mpd";
public static final String VP9_MANIFEST = "manifest-vp9.mpd"; public static final String VP9_MANIFEST = BASE_URL + "manifest-vp9.mpd";
public static final String H264_23_MANIFEST = "manifest-h264-23.mpd"; public static final String H264_23_MANIFEST = BASE_URL + "manifest-h264-23.mpd";
public static final String H264_24_MANIFEST = "manifest-h264-24.mpd"; public static final String H264_24_MANIFEST = BASE_URL + "manifest-h264-24.mpd";
public static final String H264_29_MANIFEST = "manifest-h264-29.mpd"; public static final String H264_29_MANIFEST = BASE_URL + "manifest-h264-29.mpd";
// Widevine encrypted content manifests. // Widevine encrypted content manifests.
public static final String WIDEVINE_H264_MANIFEST_PREFIX = "manifest-h264-enc"; public static final String WIDEVINE_H264_MANIFEST = BASE_URL + "manifest-h264-enc.mpd";
public static final String WIDEVINE_H265_MANIFEST_PREFIX = "manifest-h265-enc"; public static final String WIDEVINE_H265_MANIFEST = BASE_URL + "manifest-h265-enc.mpd";
public static final String WIDEVINE_VP9_MANIFEST_PREFIX = "manifest-vp9-enc"; public static final String WIDEVINE_VP9_MANIFEST = BASE_URL + "manifest-vp9-enc.mpd";
public static final String WIDEVINE_H264_23_MANIFEST_PREFIX = "manifest-h264-23-enc"; public static final String WIDEVINE_H264_23_MANIFEST = BASE_URL + "manifest-h264-23-enc.mpd";
public static final String WIDEVINE_H264_24_MANIFEST_PREFIX = "manifest-h264-24-enc"; public static final String WIDEVINE_H264_24_MANIFEST = BASE_URL + "manifest-h264-24-enc.mpd";
public static final String WIDEVINE_H264_29_MANIFEST_PREFIX = "manifest-h264-29-enc"; public static final String WIDEVINE_H264_29_MANIFEST = BASE_URL + "manifest-h264-29-enc.mpd";
public static final String AAC_AUDIO_REPRESENTATION_ID = "141"; public static final String AAC_AUDIO_REPRESENTATION_ID = "141";
public static final String H264_BASELINE_240P_VIDEO_REPRESENTATION_ID = "avc-baseline-240"; public static final String H264_BASELINE_240P_VIDEO_REPRESENTATION_ID = "avc-baseline-240";
@ -75,7 +77,7 @@ public final class DashTestData {
H265_BASELINE_288P_VIDEO_REPRESENTATION_ID, H265_BASELINE_288P_VIDEO_REPRESENTATION_ID,
H265_BASELINE_360P_VIDEO_REPRESENTATION_ID}; H265_BASELINE_360P_VIDEO_REPRESENTATION_ID};
public static final String VORBIS_AUDIO_REPRESENTATION_ID = "4"; public static final String VP9_VORBIS_AUDIO_REPRESENTATION_ID = "4";
public static final String VP9_180P_VIDEO_REPRESENTATION_ID = "0"; public static final String VP9_180P_VIDEO_REPRESENTATION_ID = "0";
public static final String VP9_360P_VIDEO_REPRESENTATION_ID = "1"; public static final String VP9_360P_VIDEO_REPRESENTATION_ID = "1";
// The highest quality VP9 format mandated by the Android CDD. // The highest quality VP9 format mandated by the Android CDD.
@ -124,11 +126,11 @@ public final class DashTestData {
WIDEVINE_H265_BASELINE_288P_VIDEO_REPRESENTATION_ID, WIDEVINE_H265_BASELINE_288P_VIDEO_REPRESENTATION_ID,
WIDEVINE_H265_BASELINE_360P_VIDEO_REPRESENTATION_ID}; WIDEVINE_H265_BASELINE_360P_VIDEO_REPRESENTATION_ID};
public static final String WIDEVINE_VORBIS_AUDIO_REPRESENTATION_ID = "0"; public static final String WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID = "0";
public static final String WIDEVINE_VP9_180P_VIDEO_REPRESENTATION_ID = "1"; public static final String WIDEVINE_VP9_180P_VIDEO_REPRESENTATION_ID = "2";
public static final String WIDEVINE_VP9_360P_VIDEO_REPRESENTATION_ID = "2"; public static final String WIDEVINE_VP9_360P_VIDEO_REPRESENTATION_ID = "3";
// The highest quality VP9 format mandated by the Android CDD. // The highest quality VP9 format mandated by the Android CDD.
public static final String WIDEVINE_VP9_CDD_FIXED = VP9_360P_VIDEO_REPRESENTATION_ID; public static final String WIDEVINE_VP9_CDD_FIXED = WIDEVINE_VP9_360P_VIDEO_REPRESENTATION_ID;
// Multiple VP9 formats mandated by the Android CDD. // Multiple VP9 formats mandated by the Android CDD.
public static final String[] WIDEVINE_VP9_CDD_ADAPTIVE = public static final String[] WIDEVINE_VP9_CDD_ADAPTIVE =
new String[] { new String[] {

View File

@ -38,7 +38,6 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
private static final String USER_AGENT = "ExoPlayerPlaybackTests"; private static final String USER_AGENT = "ExoPlayerPlaybackTests";
private DashHostedTest.Builder builder; private DashHostedTest.Builder builder;
private String widevineManifestUrl;
private DefaultHttpDataSourceFactory httpDataSourceFactory; private DefaultHttpDataSourceFactory httpDataSourceFactory;
private OfflineLicenseHelper<FrameworkMediaCrypto> offlineLicenseHelper; private OfflineLicenseHelper<FrameworkMediaCrypto> offlineLicenseHelper;
private byte[] offlineLicenseKeySetId; private byte[] offlineLicenseKeySetId;
@ -52,15 +51,14 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
super.setUp(); super.setUp();
builder = new DashHostedTest.Builder(TAG) builder = new DashHostedTest.Builder(TAG)
.setStreamName("test_widevine_h264_fixed_offline") .setStreamName("test_widevine_h264_fixed_offline")
.setManifestUrlForWidevine(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, MimeTypes.VIDEO_H264) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_FIXED); DashTestData.WIDEVINE_H264_CDD_FIXED);
boolean useL1Widevine = DashHostedTest.isL1WidevineAvailable(MimeTypes.VIDEO_H264); boolean useL1Widevine = DashHostedTest.isL1WidevineAvailable(MimeTypes.VIDEO_H264);
widevineManifestUrl = DashHostedTest
.getWidevineManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST_PREFIX, useL1Widevine);
String widevineLicenseUrl = DashHostedTest.getWidevineLicenseUrl(useL1Widevine); String widevineLicenseUrl = DashHostedTest.getWidevineLicenseUrl(useL1Widevine);
httpDataSourceFactory = new DefaultHttpDataSourceFactory(USER_AGENT); httpDataSourceFactory = new DefaultHttpDataSourceFactory(USER_AGENT);
offlineLicenseHelper = OfflineLicenseHelper.newWidevineInstance(widevineLicenseUrl, offlineLicenseHelper = OfflineLicenseHelper.newWidevineInstance(widevineLicenseUrl,
@ -166,7 +164,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
private void downloadLicense() throws InterruptedException, DrmSessionException, IOException { private void downloadLicense() throws InterruptedException, DrmSessionException, IOException {
offlineLicenseKeySetId = offlineLicenseHelper.download( offlineLicenseKeySetId = offlineLicenseHelper.download(
httpDataSourceFactory.createDataSource(), widevineManifestUrl); httpDataSourceFactory.createDataSource(), DashTestData.WIDEVINE_H264_MANIFEST);
Assert.assertNotNull(offlineLicenseKeySetId); Assert.assertNotNull(offlineLicenseKeySetId);
Assert.assertTrue(offlineLicenseKeySetId.length > 0); Assert.assertTrue(offlineLicenseKeySetId.length > 0);
builder.setOfflineLicenseKeySetId(offlineLicenseKeySetId); builder.setOfflineLicenseKeySetId(offlineLicenseKeySetId);