Commit fbd1f85e authored by John Rummell's avatar John Rummell Committed by Commit Bot

Enable Widevine AV1 playback

With the new Widevine CDM, support for AV1 has been added, so add AV1 to
the list of codecs supported by Widevine on Linux and ChromeOS devices.
Other OSes will get AV1 support from the manifest included with
Widevine.

Bug: 953504
Test: enabled browser_tests pass
Change-Id: I33764dda1239c0ac4578d7ba09604fc59f2d1e79
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1802834
Commit-Queue: John Rummell <jrummell@chromium.org>
Reviewed-by: default avatarXiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#696973}
parent 858e2059
......@@ -611,24 +611,10 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_MP4_VP9Profile2) {
#if BUILDFLAG(ENABLE_AV1_DECODER)
IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_WebM_AV1) {
#if BUILDFLAG(ENABLE_WIDEVINE)
// TODO(crbug.com/884845): Update Widevine CDM to support AV1.
if (IsWidevine(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Widevine CDM does not support AV1";
return;
}
#endif
TestSimplePlayback("bear-av1-cenc.webm");
}
IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_WebM_AV1_10bit) {
#if BUILDFLAG(ENABLE_WIDEVINE)
// TODO(crbug.com/884845): Update Widevine CDM to support AV1.
if (IsWidevine(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Widevine CDM does not support AV1";
return;
}
#endif
TestSimplePlayback("bear-av1-320x180-10bit-cenc.webm");
}
......@@ -638,13 +624,6 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_MP4_AV1) {
DVLOG(0) << "Skipping test; Can only play MP4 encrypted streams by MSE.";
return;
}
#if BUILDFLAG(ENABLE_WIDEVINE)
// TODO(crbug.com/884845): Update Widevine CDM to support AV1.
if (IsWidevine(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Widevine CDM does not support AV1";
return;
}
#endif
TestSimplePlayback("bear-av1-cenc.mp4");
}
......@@ -654,13 +633,6 @@ IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_MP4_AV1_10bit) {
DVLOG(0) << "Skipping test; Can only play MP4 encrypted streams by MSE.";
return;
}
#if BUILDFLAG(ENABLE_WIDEVINE)
// TODO(crbug.com/884845): Update Widevine CDM to support AV1.
if (IsWidevine(CurrentKeySystem())) {
DVLOG(0) << "Skipping test - Widevine CDM does not support AV1";
return;
}
#endif
TestSimplePlayback("bear-av1-320x180-10bit-cenc.mp4");
}
#endif // BUILDFLAG(ENABLE_AV1_DECODER)
......
......@@ -1002,6 +1002,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaSupportedTypesWidevineTest, Video_WebM) {
video_webm_codecs()));
EXPECT_WV_SUCCESS(IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType,
vp9_profile0_codecs()));
EXPECT_WV_AV1(
IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType, av1_codecs()));
// Non-video WebM codecs.
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType,
......@@ -1010,8 +1012,6 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaSupportedTypesWidevineTest, Video_WebM) {
// Invalid or non-Webm codecs.
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType,
vp9_profile2_codecs()));
EXPECT_UNSUPPORTED(
IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType, av1_codecs()));
EXPECT_UNSUPPORTED(
IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType, invalid_codecs()));
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoWebMMimeType,
......@@ -1048,6 +1048,8 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaSupportedTypesWidevineTest, Video_MP4) {
IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType, video_mp4_codecs()));
EXPECT_WV_SUCCESS(IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType,
vp9_profile0_codecs()));
EXPECT_WV_AV1(
IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType, av1_codecs()));
// High 10-bit Profile is not supported when using Widevine.
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType,
......@@ -1062,8 +1064,6 @@ IN_PROC_BROWSER_TEST_F(EncryptedMediaSupportedTypesWidevineTest, Video_MP4) {
// Invalid or non-MP4 codecs.
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType,
vp9_profile2_codecs()));
EXPECT_UNSUPPORTED(
IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType, av1_codecs()));
EXPECT_UNSUPPORTED(
IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType, invalid_codecs()));
EXPECT_UNSUPPORTED(IsSupportedByKeySystem(kWidevine, kVideoMP4MimeType,
......
......@@ -359,11 +359,10 @@ bool IsWidevineAvailable(base::FilePath* cdm_path,
// This list must match the CDM that is being bundled with Chrome.
capability->video_codecs.push_back(media::VideoCodec::kCodecVP8);
capability->video_codecs.push_back(media::VideoCodec::kCodecVP9);
capability->video_codecs.push_back(media::VideoCodec::kCodecAV1);
// TODO(crbug.com/899403): Update this and tests after Widevine CDM
// supports VP9 profile 2.
capability->supports_vp9_profile2 = false;
// TODO(crbug.com/953504): Update this and tests after Widevine CDM
// supports AV1.
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
capability->video_codecs.push_back(media::VideoCodec::kCodecH264);
#endif // BUILDFLAG(USE_PROPRIETARY_CODECS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment