Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "content/browser/media/media_browsertest.h" | 7 #include "content/browser/media/media_browsertest.h" |
| 8 #include "content/public/test/browser_test_utils.h" | 8 #include "content/public/test/browser_test_utils.h" |
| 9 #include "content/public/test/content_browser_test_utils.h" | 9 #include "content/public/test/content_browser_test_utils.h" |
| 10 #include "content/shell/browser/shell.h" | 10 #include "content/shell/browser/shell.h" |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 const char kTheoraProbably[] = "probably"; | 31 const char kTheoraProbably[] = "probably"; |
| 32 const char kOggOpusProbably[] = "probably"; | 32 const char kOggOpusProbably[] = "probably"; |
| 33 const char* kMpeg2AacProbably = kPropProbably; | 33 const char* kMpeg2AacProbably = kPropProbably; |
| 34 #else | 34 #else |
| 35 const char kOggVideoProbably[] = ""; | 35 const char kOggVideoProbably[] = ""; |
| 36 const char kOggVideoMaybe[] = ""; | 36 const char kOggVideoMaybe[] = ""; |
| 37 const char kTheoraProbably[] = ""; | 37 const char kTheoraProbably[] = ""; |
| 38 const char kOggOpusProbably[] = ""; | 38 const char kOggOpusProbably[] = ""; |
| 39 const char kMpeg2AacProbably[] = ""; | 39 const char kMpeg2AacProbably[] = ""; |
| 40 #endif // !OS_ANDROID | 40 #endif // !OS_ANDROID |
| 41 | 41 |
|
ddorwin
2015/06/12 00:52:26
Move kHevcSupported up here.
servolk
2015/06/12 21:57:31
Done.
| |
| 42 namespace content { | 42 namespace content { |
| 43 | 43 |
| 44 class MediaCanPlayTypeTest : public MediaBrowserTest { | 44 class MediaCanPlayTypeTest : public MediaBrowserTest { |
| 45 public: | 45 public: |
| 46 MediaCanPlayTypeTest() : url_("about:blank") { } | 46 MediaCanPlayTypeTest() : url_("about:blank") { } |
| 47 | 47 |
| 48 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } | 48 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } |
| 49 | 49 |
| 50 std::string CanPlay(const std::string& type) { | 50 std::string CanPlay(const std::string& type) { |
| 51 std::string command("document.createElement('video').canPlayType("); | 51 std::string command("document.createElement('video').canPlayType("); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 166 | 166 |
| 167 // Unknown codecs. | 167 // Unknown codecs. |
| 168 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); | 168 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); |
| 169 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); | 169 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); |
| 170 | 170 |
| 171 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); | 171 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); |
| 172 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); | 172 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); |
| 173 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); | 173 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); |
| 174 | 174 |
| 175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); | 175 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); |
| 176 | |
| 177 // Don't allow incomplete/ambiguous codec ids for HEVC. | |
| 178 // Codec string must have info about codec level/profile, e.g. hvc1.1.L0.0 | |
| 179 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'")); | |
| 180 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'")); | |
| 181 // Make sure trailing dots are not allowed. | |
| 182 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.\"'")); | |
| 183 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.\"'")); | |
| 184 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.L0.0.\"'")); | |
| 185 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.L0.0.\"'")); | |
| 186 | |
| 187 // Invalid codecs that look like something similar to HEVC/H.265 | |
| 188 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'")); | |
| 189 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1x\"'")); | |
| 190 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc0.1.L0.0\"'")); | |
| 191 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev0.1.L0.0\"'")); | |
| 192 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc2.1.L0.0\"'")); | |
| 193 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev2.1.L0.0\"'")); | |
| 176 } | 194 } |
| 177 | 195 |
| 178 void TestOGGUnacceptableCombinations(const std::string& mime) { | 196 void TestOGGUnacceptableCombinations(const std::string& mime) { |
| 179 // Codecs not belonging to OGG container. | 197 // Codecs not belonging to OGG container. |
| 180 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); | 198 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8\"'")); |
| 181 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); | 199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0\"'")); |
| 182 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); | 200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, opus\"'")); |
| 183 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); | 201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, vorbis\"'")); |
| 184 | 202 |
| 185 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); | 203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9\"'")); |
| 186 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); | 204 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0\"'")); |
| 187 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); | 205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, opus\"'")); |
| 188 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); | 206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, vorbis\"'")); |
| 189 | 207 |
| 190 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); | 208 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); |
| 191 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); | 209 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); |
| 192 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); | 210 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); |
| 193 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); | 211 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); |
| 194 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); | 212 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); |
| 195 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); | 213 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); |
| 196 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); | 214 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); |
| 197 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); | 215 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); |
|
ddorwin
2015/06/12 00:52:26
Add HEVC
servolk
2015/06/12 21:57:31
Done.
| |
| 198 | 216 |
| 199 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 217 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
| 200 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 218 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
| 201 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 219 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
| 202 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); | 220 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); |
| 203 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); | 221 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); |
| 204 | 222 |
| 205 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); | 223 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); |
| 206 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); | 224 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); |
| 207 | 225 |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 228 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'")); | 246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, vorbis\"'")); |
| 229 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, opus\"'")); | 247 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, opus\"'")); |
| 230 | 248 |
| 231 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); | 249 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1\"'")); |
| 232 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); | 250 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3\"'")); |
| 233 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); | 251 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.4D401E\"'")); |
| 234 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); | 252 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); |
| 235 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); | 253 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); |
| 236 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); | 254 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); |
| 237 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); | 255 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); |
| 238 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); | 256 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); |
|
ddorwin
2015/06/12 00:52:26
Add HEVC
| |
| 239 | 257 |
| 240 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 258 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
| 241 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 259 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
| 242 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 260 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
| 243 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); | 261 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); |
| 244 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); | 262 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); |
| 245 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); | 263 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); |
| 246 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); | 264 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); |
| 247 | 265 |
| 248 // Codecs are case sensitive. | 266 // Codecs are case sensitive. |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 481 | 499 |
| 482 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); | 500 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); |
| 483 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); | 501 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); |
| 484 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); | 502 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); |
| 485 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); | 503 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); |
| 486 EXPECT_EQ(kPropMaybe, | 504 EXPECT_EQ(kPropMaybe, |
| 487 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); | 505 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); |
| 488 EXPECT_EQ(kPropMaybe, | 506 EXPECT_EQ(kPropMaybe, |
| 489 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); | 507 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); |
| 490 | 508 |
| 509 const char* kHevcSupported = kNot; | |
|
ddorwin
2015/06/12 00:52:26
From PS33:
It's odd to define a constant like this
servolk
2015/06/12 21:57:30
Done.
| |
| 510 #if defined(ENABLE_HEVC_DEMUXING) | |
| 511 kHevcSupported = kPropProbably; | |
| 512 #endif | |
| 513 | |
| 514 // TODO(servolk): Add more unit test coverage once we have more info about | |
| 515 // various HEVC levels/profiles. | |
| 516 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hvc1.1.L0.0\"'")); | |
| 517 EXPECT_EQ(kHevcSupported, CanPlay("'video/mp4; codecs=\"hev1.1.L0.0\"'")); | |
| 518 EXPECT_EQ(kHevcSupported, | |
| 519 CanPlay("'video/mp4; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'")); | |
| 520 EXPECT_EQ(kHevcSupported, | |
| 521 CanPlay("'video/mp4; codecs=\"hev1.1.L0.0, mp4a.40.5\"'")); | |
| 522 | |
| 491 TestMPEGUnacceptableCombinations("video/mp4"); | 523 TestMPEGUnacceptableCombinations("video/mp4"); |
| 492 | 524 |
| 493 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); | 525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'")); |
| 494 | 526 |
| 495 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); | 527 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1\"'")); |
| 496 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); | 528 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3\"'")); |
| 497 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); | 529 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4a.40\"'")); |
| 498 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); | 530 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40\"'")); |
| 499 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); | 531 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40\"'")); |
| 500 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); | 532 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'")); |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 524 | 556 |
| 525 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'")); | 557 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.2\"'")); |
| 526 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.02\"'")); | 558 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a.40.02\"'")); |
| 527 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.2\"'")); | 559 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.2\"'")); |
| 528 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'")); | 560 EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a.40.02\"'")); |
| 529 EXPECT_EQ(kPropMaybe, | 561 EXPECT_EQ(kPropMaybe, |
| 530 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); | 562 CanPlay("'video/x-m4v; codecs=\"avc1.42E01E, mp4a.40\"'")); |
| 531 EXPECT_EQ(kPropMaybe, | 563 EXPECT_EQ(kPropMaybe, |
| 532 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); | 564 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); |
| 533 | 565 |
| 566 EXPECT_EQ(kHevcSupported, CanPlay("'video/x-m4v; codecs=\"hvc1.1.L0.0\"'")); | |
| 567 EXPECT_EQ(kHevcSupported, CanPlay("'video/x-m4v; codecs=\"hev1.1.L0.0\"'")); | |
| 568 EXPECT_EQ(kHevcSupported, | |
| 569 CanPlay("'video/x-m4v; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'")); | |
| 570 EXPECT_EQ(kHevcSupported, | |
| 571 CanPlay("'video/x-m4v; codecs=\"hev1.1.L0.0, mp4a.40.5\"'")); | |
| 572 | |
| 534 TestMPEGUnacceptableCombinations("video/x-m4v"); | 573 TestMPEGUnacceptableCombinations("video/x-m4v"); |
| 535 | 574 |
| 536 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); | 575 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); |
| 537 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); | 576 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); |
| 538 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); | 577 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); |
| 539 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); | 578 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); |
| 540 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); | 579 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); |
| 541 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); | 580 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); |
| 542 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); | 581 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); |
| 543 | 582 |
| 544 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); | 583 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); |
| 545 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); | 584 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); |
| 546 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); | 585 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); |
| 547 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); | 586 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); |
| 548 | 587 |
| 549 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); | 588 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); |
| 550 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); | 589 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); |
| 551 | 590 |
| 591 EXPECT_EQ(kHevcSupported, CanPlay("'audio/mp4; codecs=\"hvc1.1.L0.0\"'")); | |
|
ddorwin
2015/06/12 00:52:26
audio/* cannot contain video codecs.
servolk
2015/06/12 21:57:31
Done.
| |
| 592 EXPECT_EQ(kHevcSupported, CanPlay("'audio/mp4; codecs=\"hev1.1.L0.0\"'")); | |
| 593 EXPECT_EQ(kHevcSupported, | |
| 594 CanPlay("'audio/mp4; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'")); | |
| 595 EXPECT_EQ(kHevcSupported, | |
| 596 CanPlay("'audio/mp4; codecs=\"hev1.1.L0.0, mp4a.40.5\"'")); | |
| 597 | |
| 552 TestMPEGUnacceptableCombinations("audio/mp4"); | 598 TestMPEGUnacceptableCombinations("audio/mp4"); |
| 553 | 599 |
| 554 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); | 600 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); |
| 555 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); | 601 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); |
| 556 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); | 602 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); |
| 557 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); | 603 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); |
| 558 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); | 604 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); |
| 559 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); | 605 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); |
| 560 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); | 606 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); |
| 561 | 607 |
| 562 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); | 608 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); |
| 563 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); | 609 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); |
| 564 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); | 610 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); |
| 565 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); | 611 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); |
| 566 | 612 |
| 567 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); | 613 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); |
| 568 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); | 614 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); |
| 569 | 615 |
| 616 EXPECT_EQ(kHevcSupported, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.L0.0\"'")); | |
|
ddorwin
2015/06/12 00:52:26
ditto
servolk
2015/06/12 21:57:30
Done.
| |
| 617 EXPECT_EQ(kHevcSupported, CanPlay("'audio/x-m4a; codecs=\"hev1.1.L0.0\"'")); | |
| 618 EXPECT_EQ(kHevcSupported, | |
| 619 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.L0.0, mp4a.40.5\"'")); | |
| 620 EXPECT_EQ(kHevcSupported, | |
| 621 CanPlay("'audio/x-m4a; codecs=\"hev1.1.L0.0, mp4a.40.5\"'")); | |
| 622 | |
| 570 TestMPEGUnacceptableCombinations("audio/x-m4a"); | 623 TestMPEGUnacceptableCombinations("audio/x-m4a"); |
| 571 } | 624 } |
| 572 | 625 |
| 573 // When modifying this test, also change CodecSupportTest_Avc3Variants. | 626 // When modifying this test, also change CodecSupportTest_Avc3Variants. |
| 574 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { | 627 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { |
| 575 // avc1 without extensions results in "maybe" for compatibility. | 628 // avc1 without extensions results in "maybe" for compatibility. |
| 576 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); | 629 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); |
| 577 | 630 |
| 578 // Any 6-digit hexadecimal number will result in at least "maybe". | 631 // Any 6-digit hexadecimal number will result in at least "maybe". |
| 579 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); | 632 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 942 EXPECT_EQ(probablyCanPlayHLS, | 995 EXPECT_EQ(probablyCanPlayHLS, |
| 943 CanPlay("'application/x-mpegurl; codecs=\"avc3.42C01E\"'")); | 996 CanPlay("'application/x-mpegurl; codecs=\"avc3.42C01E\"'")); |
| 944 | 997 |
| 945 EXPECT_EQ(maybeCanPlayHLS, | 998 EXPECT_EQ(maybeCanPlayHLS, |
| 946 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E11E\"'")); | 999 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E11E\"'")); |
| 947 EXPECT_EQ(maybeCanPlayHLS, | 1000 EXPECT_EQ(maybeCanPlayHLS, |
| 948 CanPlay("'application/x-mpegurl; codecs=\"avc1.42101E\"'")); | 1001 CanPlay("'application/x-mpegurl; codecs=\"avc1.42101E\"'")); |
| 949 EXPECT_EQ(maybeCanPlayHLS, | 1002 EXPECT_EQ(maybeCanPlayHLS, |
| 950 CanPlay("'application/x-mpegurl; codecs=\"avc1.42701E\"'")); | 1003 CanPlay("'application/x-mpegurl; codecs=\"avc1.42701E\"'")); |
| 951 EXPECT_EQ(probablyCanPlayHLS, | 1004 EXPECT_EQ(probablyCanPlayHLS, |
| 952 CanPlay("'application/x-mpegurl; codecs=\"avc1.42F01E\"'")); | 1005 CanPlay("'application/x-mpegurl; codecs=\"avc1.42F01E\"'")); |
|
ddorwin
2015/06/12 00:52:26
Add HEVC (kNot)
servolk
2015/06/12 21:57:30
Done.
| |
| 953 | 1006 |
| 954 EXPECT_EQ(probablyCanPlayHLS, | 1007 EXPECT_EQ(probablyCanPlayHLS, |
| 955 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'")); | 1008 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'")); |
| 956 EXPECT_EQ(probablyCanPlayHLS, | 1009 EXPECT_EQ(probablyCanPlayHLS, |
| 957 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.02\"'")); | 1010 CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.02\"'")); |
| 958 EXPECT_EQ(probablyCanPlayHLS, | 1011 EXPECT_EQ(probablyCanPlayHLS, |
| 959 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); | 1012 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.2\"'")); |
| 960 EXPECT_EQ(probablyCanPlayHLS, | 1013 EXPECT_EQ(probablyCanPlayHLS, |
| 961 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); | 1014 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40.02\"'")); |
| 962 EXPECT_EQ(probablyCanPlayHLS, | 1015 EXPECT_EQ(probablyCanPlayHLS, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1003 EXPECT_EQ(probablyCanPlayHLS, | 1056 EXPECT_EQ(probablyCanPlayHLS, |
| 1004 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.42C01E\"'")); | 1057 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.42C01E\"'")); |
| 1005 | 1058 |
| 1006 EXPECT_EQ(maybeCanPlayHLS, | 1059 EXPECT_EQ(maybeCanPlayHLS, |
| 1007 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42E11E\"'")); | 1060 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42E11E\"'")); |
| 1008 EXPECT_EQ(maybeCanPlayHLS, | 1061 EXPECT_EQ(maybeCanPlayHLS, |
| 1009 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42101E\"'")); | 1062 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42101E\"'")); |
| 1010 EXPECT_EQ(maybeCanPlayHLS, | 1063 EXPECT_EQ(maybeCanPlayHLS, |
| 1011 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42701E\"'")); | 1064 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42701E\"'")); |
| 1012 EXPECT_EQ(probablyCanPlayHLS, | 1065 EXPECT_EQ(probablyCanPlayHLS, |
| 1013 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42F01E\"'")); | 1066 CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.42F01E\"'")); |
|
ddorwin
2015/06/12 00:52:26
ditto
servolk
2015/06/12 21:57:30
Done.
| |
| 1014 | 1067 |
| 1015 EXPECT_EQ(probablyCanPlayHLS, | 1068 EXPECT_EQ(probablyCanPlayHLS, |
| 1016 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'")); | 1069 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'")); |
| 1017 EXPECT_EQ(probablyCanPlayHLS, | 1070 EXPECT_EQ(probablyCanPlayHLS, |
| 1018 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.02\"'")); | 1071 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.02\"'")); |
| 1019 EXPECT_EQ(probablyCanPlayHLS, | 1072 EXPECT_EQ(probablyCanPlayHLS, |
| 1020 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.5\"'")); | 1073 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.5\"'")); |
| 1021 EXPECT_EQ(probablyCanPlayHLS, | 1074 EXPECT_EQ(probablyCanPlayHLS, |
| 1022 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.05\"'")); | 1075 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.05\"'")); |
| 1023 EXPECT_EQ(probablyCanPlayHLS, | 1076 EXPECT_EQ(probablyCanPlayHLS, |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 1035 CanPlay("'application/vnd.apple.mpegurl; " | 1088 CanPlay("'application/vnd.apple.mpegurl; " |
| 1036 "codecs=\"avc1.42E01E, mp4a.40\"'")); | 1089 "codecs=\"avc1.42E01E, mp4a.40\"'")); |
| 1037 EXPECT_EQ(maybeCanPlayHLS, | 1090 EXPECT_EQ(maybeCanPlayHLS, |
| 1038 CanPlay("'application/vnd.apple.mpegurl; " | 1091 CanPlay("'application/vnd.apple.mpegurl; " |
| 1039 "codecs=\"avc3.42E01E, mp4a.40\"'")); | 1092 "codecs=\"avc3.42E01E, mp4a.40\"'")); |
| 1040 | 1093 |
| 1041 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); | 1094 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); |
| 1042 } | 1095 } |
| 1043 | 1096 |
| 1044 } // namespace content | 1097 } // namespace content |
| OLD | NEW |