| 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..a93146451a0cb7c0ad00656f2c81198844617841 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 {
|
| @@ -318,6 +324,9 @@ class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'"));
|
|
|
| + EXPECT_EQ(kNot,
|
| + CanPlay("'" + mime + "; codecs=\"vp09.01.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\"'"));
|
| @@ -424,6 +433,9 @@ class MediaCanPlayTypeTest : public MediaBrowserTest {
|
| 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\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'"));
|
| @@ -696,6 +708,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'"));
|
| @@ -789,6 +804,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\"'"));
|
| @@ -1090,6 +1107,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)
|
|
|