diff options
author | ddorwin <ddorwin@chromium.org> | 2016-03-08 17:51:56 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-09 01:54:00 +0000 |
commit | 1e03f7aebaf957701f8b480c9bb5dc757211047e (patch) | |
tree | 26836214d28e515f759989739ff65efc71c81f30 /content/browser/media | |
parent | b77e46bcf692f5106bb51d0b12bb3027b2ae6fef (diff) | |
download | chromium_src-1e03f7aebaf957701f8b480c9bb5dc757211047e.zip chromium_src-1e03f7aebaf957701f8b480c9bb5dc757211047e.tar.gz chromium_src-1e03f7aebaf957701f8b480c9bb5dc757211047e.tar.bz2 |
media: Add tests for MP3 codec strings
"mp3" is only considered valid for "audio/mpeg". However, due
to bug 592889, all other MPEG containers have the wrong result.
Similarly, "mp4a.6x" variants should not be supported with
"audio/mpeg" but currently produces the wrong result.
Also made some test ordering more consistent/logical and fixed missing spaces.
BUG=592889
Review URL: https://codereview.chromium.org/1779513002
Cr-Commit-Position: refs/heads/master@{#380029}
Diffstat (limited to 'content/browser/media')
-rw-r--r-- | content/browser/media/media_canplaytype_browsertest.cc | 305 |
1 files changed, 213 insertions, 92 deletions
diff --git a/content/browser/media/media_canplaytype_browsertest.cc b/content/browser/media/media_canplaytype_browsertest.cc index 5639d6d..b14b387 100644 --- a/content/browser/media/media_canplaytype_browsertest.cc +++ b/content/browser/media/media_canplaytype_browsertest.cc @@ -41,7 +41,7 @@ const char* kOggVideoProbably = kNot; const char* kOggVideoMaybe = kNot; const char* kTheoraProbably = kNot; const char* kOggOpusProbably = kNot; -const char* kMpeg2AacProbably = kNot; +const char* kMpeg2AacProbably = kNot; // https://crbug.com/544268. const char* kHlsProbably = kProbably; const char* kHlsMaybe = kMaybe; #endif // !OS_ANDROID @@ -188,6 +188,17 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\";mp4a.40+\"'")); // Codecs not belonging to MPEG container. + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, 1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, 1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E, 1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F, 1\"'")); + + // Restore this check and remove the individual checks in the calling tests + // when https://crbug.com/592889 is fixed. + // if (mime != "audio/mpeg") + // EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp3\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vorbis\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, vorbis\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, vorbis\"'")); @@ -209,12 +220,6 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, mp4a.40.02\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9, mp4a.40.02\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, 1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, 1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E, 1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F, 1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, mp4a\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, mp4a.40.2\"'")); @@ -313,36 +318,47 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { void TestOGGUnacceptableCombinations(const std::string& mime) { // Codecs not belonging to OGG container. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); - 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=\"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=\"avc1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.66.30\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, 1\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8\"'")); + 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=\"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=\"avc1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, opus\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp3\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.6B\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.2\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.02\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, mp4a.40.2\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, mp4a.40.02\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); @@ -351,54 +367,59 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); - // Codecs are case sensitive. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"Theora\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"Opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"Vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"Theora, Opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"Theora, Vorbis\"'")); // Unknown codecs. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); } void TestWEBMUnacceptableCombinations(const std::string& mime) { // Codecs not belonging to WEBM container. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, 1\"'")); - 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=\"theora\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, opus\"'")); - - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.66.30\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8, 1\"'")); + 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=\"theora\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, opus\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, opus\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); - 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.0, mp4a.40\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp3\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.6B\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.2\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.02\"'")); + 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.0, mp4a.40\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp9.0, mp4a.40\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); @@ -408,43 +429,51 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); // Codecs are case sensitive. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8.0, Opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9, Vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9.0, Opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"VP8, Vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"VP8.0, Opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"VP9, Vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"VP9.0, Opus\"'")); // Unknown codec. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); } void TestWAVUnacceptableCombinations(const std::string& mime) { // Codecs not belonging to WAV container. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); - 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=\"vorbis\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); - - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.66.30\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, 1\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, 1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"vp8\"'")); + 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=\"vorbis\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"opus\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"theora, 1\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.4D401E\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1.66.30\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1, 1\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3, 1\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp3\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.6B\"'")); + + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.2\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.40.02\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); @@ -454,7 +483,7 @@ class MediaCanPlayTypeTest : public MediaBrowserTest { EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); // Unknown codec. - EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); + EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); } private: @@ -587,6 +616,12 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp3) { EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc1.4D401E\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.68\"'")); + // The next two results are wrong due to https://crbug.com/592889. + EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a.6B\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mpeg; codecs=\"mp4a.40.02\"'")); @@ -601,10 +636,16 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp3) { EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc1.4D401E\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.6B\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp4a.40.02\"'")); TestMPEGUnacceptableCombinations("audio/mp3"); + EXPECT_EQ(kNot, CanPlay("'audio/mp3; codecs=\"mp3\"'")); // audio/x-mp3 does not allow any codecs parameter EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3'")); @@ -615,10 +656,16 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp3) { EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc1.4D401E\"'")); EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"avc3.64001F\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.6B\"'")); EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp4a.40.02\"'")); TestMPEGUnacceptableCombinations("audio/x-mp3"); + EXPECT_EQ(kNot, CanPlay("'audio/x-mp3; codecs=\"mp3\"'")); } IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { @@ -640,6 +687,12 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.42801E\"'")); EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.42C01E\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/mp4; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/mp4; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/mp4; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.40.02\"'")); EXPECT_EQ(kPropProbably, @@ -697,6 +750,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { CanPlay("'video/mp4; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); TestMPEGUnacceptableCombinations("video/mp4"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp3\"'")); EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); @@ -716,6 +771,12 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.42801E\"'")); EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.42C01E\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.40.02\"'")); EXPECT_EQ(kPropProbably, @@ -767,8 +828,16 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.A6\"'")); TestMPEGUnacceptableCombinations("video/x-m4v"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp3\"'")); EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/mp4; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/mp4; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/mp4; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); @@ -797,8 +866,17 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'")); TestMPEGUnacceptableCombinations("audio/mp4"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp3\"'")); EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); + + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kMpeg2AacProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); @@ -829,6 +907,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) { EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.A6\"'")); TestMPEGUnacceptableCombinations("audio/x-m4a"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp3\"'")); } // When modifying this test, also change CodecSupportTest_Avc3Variants. @@ -1206,6 +1286,18 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { EXPECT_EQ(kHlsProbably, CanPlay("'application/x-mpegurl; codecs=\"avc3.42C01E\"'")); + // Android, is the only platform that supports these types, and its HLS + // implementations uses platform codecs, which do not include MPEG-2 AAC. + // See https://crbug.com/544268. + EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.68\"'")); + + EXPECT_EQ(kHlsProbably, + CanPlay("'application/x-mpegurl; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kHlsProbably, + CanPlay("'application/x-mpegurl; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kHlsProbably, CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kHlsProbably, @@ -1258,6 +1350,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { CanPlay("'application/x-mpegurl; codecs=\"avc3.42E01E, mp4a.40\"'")); TestMPEGUnacceptableCombinations("application/x-mpegurl"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kHlsProbably, CanPlay("'application/x-mpegurl; codecs=\"mp3\"'")); EXPECT_EQ(kHlsMaybe, CanPlay("'application/vnd.apple.mpegurl'")); @@ -1290,6 +1384,21 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { EXPECT_EQ(kHlsProbably, CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.42C01E\"'")); + // Android, is the only platform that supports these types, and its HLS + // implementations uses platform codecs, which do not include MPEG-2 AAC. + // See https://crbug.com/544268. + EXPECT_EQ(kNot, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kNot, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kNot, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.68\"'")); + + EXPECT_EQ(kHlsProbably, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kHlsProbably, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.6B\"'")); + EXPECT_EQ(kHlsProbably, CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'")); EXPECT_EQ(kHlsProbably, @@ -1341,6 +1450,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.a6\"'")); TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kHlsProbably, + CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp3\"'")); } IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AAC_ADTS) { @@ -1360,6 +1472,13 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) { EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.42E01E\"'")); EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.4D401E\"'")); EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.640028\"'")); + + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.66\"'")); + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.67\"'")); + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.68\"'")); + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.69\"'")); + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.6B\"'")); + // AAC LC audio EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'")); // H.264 + AAC audio combinations @@ -1384,6 +1503,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) { CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a6\"'")); TestMPEGUnacceptableCombinations("video/mp2t"); + // This result is incorrect. See https://crbug.com/592889. + EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp3\"'")); } IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, |