| Index: content/browser/media/media_canplaytype_browsertest.cc
|
| diff --git a/content/browser/media/media_canplaytype_browsertest.cc b/content/browser/media/media_canplaytype_browsertest.cc
|
| index 5639d6d82784aed3dbb490878a6cca1aa5323eaa..b201bdb1c4fab54a98ca5c08cceed0f734411176 100644
|
| --- a/content/browser/media/media_canplaytype_browsertest.cc
|
| +++ b/content/browser/media/media_canplaytype_browsertest.cc
|
| @@ -73,6 +73,12 @@ const char* kMp2tsAc3Eac3Probably = kPropProbably;
|
| const char* kMp2tsAc3Eac3Probably = kNot;
|
| #endif
|
|
|
| +#if BUILDFLAG(ENABLE_MP4_VP9_DEMUXING)
|
| +const char* kMp4Vp9Probably = kPropProbably;
|
| +#else
|
| +const char* kMp4Vp9Probably = kNot;
|
| +#endif
|
| +
|
| namespace content {
|
|
|
| class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| @@ -323,6 +329,9 @@ class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'"));
|
|
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| +
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'"));
|
| @@ -372,6 +381,8 @@ class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, 1\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, 1\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, 1\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'"));
|
| @@ -423,6 +434,8 @@ class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, 1\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, 1\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vorbis\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"opus\"'"));
|
| @@ -696,6 +709,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
| EXPECT_EQ(kHevcSupported,
|
| CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/mp4; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| +
|
| TestMPEGUnacceptableCombinations("video/mp4");
|
|
|
| EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'"));
|
| @@ -747,6 +763,10 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
| EXPECT_EQ(kHevcSupported,
|
| CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
|
|
|
| + // TODO(ddorwin): This should be kNot. https://crbug.com/589675
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/x-m4v; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| +
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.a5\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.A5\"'"));
|
| @@ -789,6 +809,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| +
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'"));
|
| @@ -821,6 +843,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
| EXPECT_EQ(kNot,
|
| CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'audio/x-m4a; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| +
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.a5\"'"));
|
| EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.A5\"'"));
|
| @@ -1090,6 +1115,32 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AvcLevels) {
|
| EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'"));
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4VpxVariants) {
|
| + // Malformed codecs string.
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.00.-1.08\"'"));
|
| +
|
| + // Codecs strings with missing fields.
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp08.00.01.08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.00.01.08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01..02.01.01.00\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.05.01.01\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.04\"'"));
|
| +
|
| + // Unexpected bit depth.
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.09.02.01.01.00\"'"));
|
| + // Unexpected chroma subsampling.
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.04.04.00.00\"'"));
|
| + // Unexpected transfer function.
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.01.01.08.04.03.02.00\"'"));
|
| +
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/mp4; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/mp4; codecs=\"vp09.01.01.08.04.03.00.00\"'"));
|
| +}
|
| +
|
| // TODO(servolk): Add extensive tests for various HEVC profiles, levels and
|
| // tiers, similar to avc1/avc3 tests above, after proper HEVC codec id parsing
|
| // is implemented (crbug.com/482761)
|
| @@ -1235,6 +1286,10 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) {
|
| EXPECT_EQ(kNot,
|
| CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(
|
| + kNot,
|
| + CanPlay("'application/x-mpegurl; codecs=\"vp09.01.01.08.04.03.00.00\"'"));
|
| +
|
| EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"ec-3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.A5\"'"));
|
| @@ -1329,6 +1384,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) {
|
| CanPlay("'application/vnd.apple.mpegurl; "
|
| "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kNot, CanPlay("'application/vnd.apple.mpegurl; "
|
| + "codecs=\"vp09.01.01.08.04.03.00.00\"'"));
|
| +
|
| EXPECT_EQ(kNot, CanPlay("'application/vnd.apple.mpegurl; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'application/vnd.apple.mpegurl; codecs=\"ec-3\"'"));
|
| EXPECT_EQ(kNot,
|
|
|