| 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 7dba85b1d1aa9f6306819e8478cc8c59fc2d244f..ac278fe80ff3223c95d779337f480dbf14677e60 100644
|
| --- a/content/browser/media/media_canplaytype_browsertest.cc
|
| +++ b/content/browser/media/media_canplaytype_browsertest.cc
|
| @@ -76,6 +76,14 @@
|
| const char* kHi10pProbably = kPropProbably;
|
| #else
|
| const char* kHi10pProbably = kPropMaybe;
|
| +#endif
|
| +
|
| +#if BUILDFLAG(ENABLE_MP4_VP9_DEMUXING)
|
| +const char* kMp4Vp9Probably = kPropProbably;
|
| +const char* kMP4Vp9Maybe = kMaybe;
|
| +#else
|
| +const char* kMp4Vp9Probably = kNot;
|
| +const char* kMP4Vp9Maybe = kNot;
|
| #endif
|
|
|
| namespace content {
|
| @@ -220,6 +228,12 @@
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, mp4a.40\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, mp4a.40\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, mp4a.40.2\"'"));
|
| @@ -332,11 +346,17 @@
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8.0\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, opus\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, vorbis\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp08\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, opus\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, vorbis\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'"));
|
| @@ -392,6 +412,12 @@
|
| 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=\"vp08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, vorbis\"'"));
|
| @@ -451,6 +477,12 @@
|
| 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=\"vp08\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp09\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp08.00.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vorbis\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"opus\"'"));
|
| @@ -741,6 +773,9 @@
|
| EXPECT_EQ(kHevcSupported,
|
| CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/mp4; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
|
| +
|
| TestMPEGUnacceptableCombinations("video/mp4");
|
| // This result is incorrect. See https://crbug.com/592889.
|
| EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp3\"'"));
|
| @@ -798,6 +833,9 @@
|
| EXPECT_EQ(kNot,
|
| CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
|
|
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'video/x-m4v; codecs=\"vp09.00.01.08.02.01.01.00\"'"));
|
| +
|
| EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.a5\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.A5\"'"));
|
| @@ -840,6 +878,8 @@
|
| 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.00.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\"'"));
|
| @@ -880,6 +920,9 @@
|
| CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
|
| 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.00.01.08.02.01.01.00\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"ac-3\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.a5\"'"));
|
| @@ -1176,6 +1219,37 @@
|
| EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E050\"'"));
|
| EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E051\"'"));
|
| EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.42E052\"'"));
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4Vp9Variants) {
|
| + // 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=\"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.00.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kMp4Vp9Probably,
|
| + CanPlay("'video/mp4; codecs=\"vp09.00.01.08.04.03.00.00\"'"));
|
| + EXPECT_EQ(kMP4Vp9Maybe,
|
| + CanPlay("'video/mp4; codecs=\"vp09.01.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kMP4Vp9Maybe,
|
| + CanPlay("'video/mp4; codecs=\"vp09.02.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kMP4Vp9Maybe,
|
| + CanPlay("'video/mp4; codecs=\"vp09.03.01.08.02.01.01.00\"'"));
|
| + EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"vp09.04.01.08.02.01.01.00\"'"));
|
| }
|
|
|
| // TODO(servolk): Add extensive tests for various HEVC profiles, levels and
|
| @@ -1337,6 +1411,10 @@
|
| 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\"'"));
|
| @@ -1447,6 +1525,9 @@
|
| EXPECT_EQ(kNot,
|
| 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\"'"));
|
|
|