| 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..17d13472f86e069365bed564ef07b4b3b1bbb79f 100644
|
| --- a/content/browser/media/media_canplaytype_browsertest.cc
|
| +++ b/content/browser/media/media_canplaytype_browsertest.cc
|
| @@ -32,12 +32,16 @@ const char* kPropMaybe = kNot;
|
| const char* kOggVideoProbably = kProbably;
|
| const char* kOggVideoMaybe = kMaybe;
|
| const char* kTheoraProbably = kProbably;
|
| +const char* kOggOpusProbably = kProbably;
|
| +const char* kMpeg2AacProbably = kPropProbably;
|
| const char* kHlsProbably = kNot;
|
| const char* kHlsMaybe = kNot;
|
| #else
|
| const char* kOggVideoProbably = kNot;
|
| const char* kOggVideoMaybe = kNot;
|
| const char* kTheoraProbably = kNot;
|
| +const char* kOggOpusProbably = kNot;
|
| +const char* kMpeg2AacProbably = kNot; // https://crbug.com/544268.
|
| const char* kHlsProbably = kPropProbably;
|
| const char* kHlsMaybe = kPropMaybe;
|
| #endif // !OS_ANDROID
|
| @@ -511,31 +515,45 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_wav) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_webm) {
|
| + // On Android, VP9 is supported only on KitKat and above (API level 19) and
|
| + // Opus is supported only on Lollipop and above (API level 21).
|
| + std::string VP9Probably = "probably";
|
| + std::string VP9AndOpusProbably = "probably";
|
| + std::string OpusProbably = "probably";
|
| +#if defined(OS_ANDROID)
|
| + if (base::android::BuildInfo::GetInstance()->sdk_int() < 19)
|
| + VP9Probably = "";
|
| + if (base::android::BuildInfo::GetInstance()->sdk_int() < 21) {
|
| + OpusProbably = "";
|
| + VP9AndOpusProbably = "";
|
| + }
|
| +#endif
|
| EXPECT_EQ(kMaybe, CanPlay("'video/webm'"));
|
|
|
| EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8\"'"));
|
| EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0\"'"));
|
| EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, vorbis\"'"));
|
| EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, vorbis\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, opus\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, opus\"'"));
|
| + EXPECT_EQ(OpusProbably, CanPlay("'video/webm; codecs=\"vp8, opus\"'"));
|
| + EXPECT_EQ(OpusProbably, CanPlay("'video/webm; codecs=\"vp8.0, opus\"'"));
|
|
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9.0\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9, vorbis\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9.0, vorbis\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9, opus\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9.0, opus\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9.0\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9, vorbis\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp9.0, vorbis\"'"));
|
| + EXPECT_EQ(VP9AndOpusProbably, CanPlay("'video/webm; codecs=\"vp9, opus\"'"));
|
| + EXPECT_EQ(VP9AndOpusProbably,
|
| + CanPlay("'video/webm; codecs=\"vp9.0, opus\"'"));
|
|
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, vp9\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, vp9.0\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp8, vp9\"'"));
|
| + EXPECT_EQ(VP9Probably, CanPlay("'video/webm; codecs=\"vp8.0, vp9.0\"'"));
|
|
|
| TestWEBMUnacceptableCombinations("video/webm");
|
|
|
| EXPECT_EQ(kMaybe, CanPlay("'audio/webm'"));
|
| EXPECT_EQ(kProbably, CanPlay("'audio/webm; codecs=\"vorbis\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'audio/webm; codecs=\"opus\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'audio/webm; codecs=\"opus, vorbis\"'"));
|
| + EXPECT_EQ(OpusProbably, CanPlay("'audio/webm; codecs=\"opus\"'"));
|
| + EXPECT_EQ(OpusProbably, CanPlay("'audio/webm; codecs=\"opus, vorbis\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0\"'"));
|
| @@ -568,8 +586,8 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_ogg) {
|
|
|
| EXPECT_EQ(kMaybe, CanPlay("'audio/ogg'"));
|
| EXPECT_EQ(kProbably, CanPlay("'audio/ogg; codecs=\"vorbis\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'audio/ogg; codecs=\"opus\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'audio/ogg; codecs=\"vorbis, opus\"'"));
|
| + EXPECT_EQ(kOggOpusProbably, CanPlay("'audio/ogg; codecs=\"opus\"'"));
|
| + EXPECT_EQ(kOggOpusProbably, CanPlay("'audio/ogg; codecs=\"vorbis, opus\"'"));
|
|
|
| EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora, opus\"'"));
|
| @@ -580,12 +598,13 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_ogg) {
|
| EXPECT_EQ(kMaybe, CanPlay("'application/ogg'"));
|
| EXPECT_EQ(kProbably, CanPlay("'application/ogg; codecs=\"vorbis\"'"));
|
| EXPECT_EQ(kTheoraProbably, CanPlay("'application/ogg; codecs=\"theora\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'application/ogg; codecs=\"opus\"'"));
|
| + EXPECT_EQ(kOggOpusProbably, CanPlay("'application/ogg; codecs=\"opus\"'"));
|
| EXPECT_EQ(kTheoraProbably,
|
| CanPlay("'application/ogg; codecs=\"theora, vorbis\"'"));
|
| EXPECT_EQ(kTheoraProbably,
|
| CanPlay("'application/ogg; codecs=\"theora, opus\"'"));
|
| - EXPECT_EQ(kProbably, CanPlay("'application/ogg; codecs=\"opus, vorbis\"'"));
|
| + EXPECT_EQ(kOggOpusProbably,
|
| + CanPlay("'application/ogg; codecs=\"opus, vorbis\"'"));
|
|
|
| TestOGGUnacceptableCombinations("application/ogg");
|
| }
|
| @@ -679,9 +698,9 @@ 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(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.66\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.67\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.68\"'"));
|
| + 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\"'"));
|
|
|
| @@ -763,9 +782,9 @@ 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(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.66\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.67\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.68\"'"));
|
| + 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(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.69\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'video/x-m4v; codecs=\"mp4a.6B\"'"));
|
|
|
| @@ -814,9 +833,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
| TestMPEGUnacceptableCombinations("video/x-m4v");
|
|
|
| EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.66\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.67\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.68\"'"));
|
| + 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\"'"));
|
|
|
| @@ -853,9 +872,9 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
|
|
|
| EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
|
|
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.66\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.67\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.68\"'"));
|
| + 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(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.69\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"mp4a.6B\"'"));
|
|
|
| @@ -1197,10 +1216,10 @@ IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mp4aVariants) {
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.63\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.65\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.65\"'"));
|
| - // MPEG2 AAC Main, LC, and SSR are supported.
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.66\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.67\"'"));
|
| - EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.68\"'"));
|
| + // MPEG2 AAC Main, LC, and SSR are supported except on Android.
|
| + 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\"'"));
|
| // MP3.
|
| EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.69\"'"));
|
| EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.6A\"'"));
|
|
|