| 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 "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 #include "content/browser/media/media_browsertest.h" | 9 #include "content/browser/media/media_browsertest.h" |
| 10 #include "content/public/test/browser_test_utils.h" | 10 #include "content/public/test/browser_test_utils.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 #endif | 49 #endif |
| 50 | 50 |
| 51 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) | 51 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) |
| 52 const char* kMp2tsMaybe = kPropMaybe; | 52 const char* kMp2tsMaybe = kPropMaybe; |
| 53 const char* kMp2tsProbably = kPropProbably; | 53 const char* kMp2tsProbably = kPropProbably; |
| 54 #else | 54 #else |
| 55 const char* kMp2tsMaybe = kNot; | 55 const char* kMp2tsMaybe = kNot; |
| 56 const char* kMp2tsProbably = kNot; | 56 const char* kMp2tsProbably = kNot; |
| 57 #endif | 57 #endif |
| 58 | 58 |
| 59 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) |
| 60 const char* kAc3Eac3Probably = kPropProbably; |
| 61 #else |
| 62 const char* kAc3Eac3Probably = kNot; |
| 63 #endif |
| 64 |
| 65 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) && \ |
| 66 BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING) |
| 67 const char* kMp2tsAc3Eac3Probably = kPropProbably; |
| 68 #else |
| 69 const char* kMp2tsAc3Eac3Probably = kNot; |
| 70 #endif |
| 71 |
| 59 namespace content { | 72 namespace content { |
| 60 | 73 |
| 61 class MediaCanPlayTypeTest : public MediaBrowserTest { | 74 class MediaCanPlayTypeTest : public MediaBrowserTest { |
| 62 public: | 75 public: |
| 63 MediaCanPlayTypeTest() : url_("about:blank") { } | 76 MediaCanPlayTypeTest() : url_("about:blank") { } |
| 64 | 77 |
| 65 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } | 78 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } |
| 66 | 79 |
| 67 std::string CanPlay(const std::string& type) { | 80 std::string CanPlay(const std::string& type) { |
| 68 std::string command("document.createElement('video').canPlayType("); | 81 std::string command("document.createElement('video').canPlayType("); |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 CanPlay("'" + mime + "; codecs=\", AVC3.64001F, MP4.40.02\"'")); | 226 CanPlay("'" + mime + "; codecs=\", AVC3.64001F, MP4.40.02\"'")); |
| 214 | 227 |
| 215 // Unknown codecs. | 228 // Unknown codecs. |
| 216 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); | 229 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); |
| 217 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); | 230 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); |
| 218 | 231 |
| 219 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); | 232 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); |
| 220 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); | 233 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); |
| 221 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); | 234 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); |
| 222 | 235 |
| 236 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac\"'")); |
| 237 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec\"'")); |
| 238 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-\"'")); |
| 239 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-\"'")); |
| 240 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-2\"'")); |
| 241 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-2\"'")); |
| 242 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac3\"'")); |
| 243 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec3\"'")); |
| 244 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-4\"'")); |
| 245 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-4\"'")); |
| 246 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a4\"'")); |
| 247 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a7\"'")); |
| 248 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5.\"'")); |
| 249 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6.\"'")); |
| 250 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5.1\"'")); |
| 251 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6.1\"'")); |
| 252 |
| 223 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); | 253 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); |
| 224 | 254 |
| 225 // Don't allow incomplete/ambiguous codec ids for HEVC. | 255 // Don't allow incomplete/ambiguous codec ids for HEVC. |
| 226 // Codec string must have info about codec level/profile, as described in | 256 // Codec string must have info about codec level/profile, as described in |
| 227 // ISO/IEC FDIS 14496-15 section E.3, for example "hev1.1.6.L93.B0" | 257 // ISO/IEC FDIS 14496-15 section E.3, for example "hev1.1.6.L93.B0" |
| 228 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'")); | 258 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'")); |
| 229 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'")); | 259 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'")); |
| 230 | 260 |
| 231 // Invalid codecs that look like something similar to HEVC/H.265 | 261 // Invalid codecs that look like something similar to HEVC/H.265 |
| 232 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'")); | 262 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'")); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); | 323 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 294 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); | 324 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); |
| 295 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | 325 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); |
| 296 | 326 |
| 297 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 327 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
| 298 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 328 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
| 299 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 329 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
| 300 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); | 330 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); |
| 301 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); | 331 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); |
| 302 | 332 |
| 333 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); |
| 334 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); |
| 335 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A5\"'")); |
| 336 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A6\"'")); |
| 337 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'")); |
| 338 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); |
| 339 |
| 303 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); | 340 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); |
| 304 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); | 341 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); |
| 305 | 342 |
| 306 // Codecs are case sensitive. | 343 // Codecs are case sensitive. |
| 307 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora\"'")); | 344 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora\"'")); |
| 308 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Opus\"'")); | 345 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Opus\"'")); |
| 309 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Vorbis\"'")); | 346 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Vorbis\"'")); |
| 310 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Opus\"'")); | 347 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Opus\"'")); |
| 311 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Vorbis\"'")); | 348 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"Theora, Vorbis\"'")); |
| 312 | 349 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 342 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | 379 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); |
| 343 | 380 |
| 344 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 381 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
| 345 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 382 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
| 346 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 383 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
| 347 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); | 384 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8, mp4a.40\"'")); |
| 348 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); | 385 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9, mp4a.40\"'")); |
| 349 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); | 386 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp8.0, mp4a.40\"'")); |
| 350 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); | 387 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"vp9.0, mp4a.40\"'")); |
| 351 | 388 |
| 389 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); |
| 390 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); |
| 391 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A5\"'")); |
| 392 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A6\"'")); |
| 393 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'")); |
| 394 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); |
| 395 |
| 352 // Codecs are case sensitive. | 396 // Codecs are case sensitive. |
| 353 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); | 397 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8, Vorbis\"'")); |
| 354 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8.0, Opus\"'")); | 398 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP8.0, Opus\"'")); |
| 355 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9, Vorbis\"'")); | 399 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9, Vorbis\"'")); |
| 356 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9.0, Opus\"'")); | 400 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"VP9.0, Opus\"'")); |
| 357 | 401 |
| 358 // Unknown codec. | 402 // Unknown codec. |
| 359 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); | 403 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); |
| 360 } | 404 } |
| 361 | 405 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 381 | 425 |
| 382 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); | 426 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); |
| 383 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); | 427 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 384 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); | 428 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); |
| 385 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); | 429 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'")); |
| 386 | 430 |
| 387 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); | 431 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); |
| 388 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); | 432 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); |
| 389 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); | 433 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); |
| 390 | 434 |
| 435 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-3\"'")); |
| 436 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-3\"'")); |
| 437 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A5\"'")); |
| 438 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.A6\"'")); |
| 439 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5\"'")); |
| 440 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6\"'")); |
| 441 |
| 391 // Unknown codec. | 442 // Unknown codec. |
| 392 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); | 443 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"unknown\"'")); |
| 393 } | 444 } |
| 394 | 445 |
| 395 private: | 446 private: |
| 396 GURL url_; | 447 GURL url_; |
| 397 DISALLOW_COPY_AND_ASSIGN(MediaCanPlayTypeTest); | 448 DISALLOW_COPY_AND_ASSIGN(MediaCanPlayTypeTest); |
| 398 }; | 449 }; |
| 399 | 450 |
| 400 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_wav) { | 451 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_wav) { |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'")); | 640 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'")); |
| 590 EXPECT_EQ(kPropProbably, | 641 EXPECT_EQ(kPropProbably, |
| 591 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'")); | 642 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'")); |
| 592 EXPECT_EQ(kPropProbably, | 643 EXPECT_EQ(kPropProbably, |
| 593 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'")); | 644 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'")); |
| 594 EXPECT_EQ(kPropProbably, | 645 EXPECT_EQ(kPropProbably, |
| 595 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'")); | 646 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'")); |
| 596 EXPECT_EQ(kPropProbably, | 647 EXPECT_EQ(kPropProbably, |
| 597 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'")); | 648 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'")); |
| 598 | 649 |
| 650 // AC3 and EAC3 (aka Dolby Digital Plus, DD+) audio codecs. |
| 651 // TODO(servolk): Strictly speaking only mp4a.A5 and mp4a.A6 codec ids are |
| 652 // valid according to RFC 6381 section 3.3, 3.4. Lower-case oti (mp4a.a5 and |
| 653 // mp4a.a6) should be rejected. But we used to allow those in older versions |
| 654 // of Chromecast firmware and some apps (notably MPL) depend on those codec |
| 655 // types being supported, so they should be allowed for now (crbug.com/564960) |
| 656 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ac-3\"'")); |
| 657 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a5\"'")); |
| 658 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A5\"'")); |
| 659 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ec-3\"'")); |
| 660 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a6\"'")); |
| 661 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A6\"'")); |
| 662 EXPECT_EQ(kAc3Eac3Probably, |
| 663 CanPlay("'video/mp4; codecs=\"avc1.640028,ac-3\"'")); |
| 664 EXPECT_EQ(kAc3Eac3Probably, |
| 665 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a5\"'")); |
| 666 EXPECT_EQ(kAc3Eac3Probably, |
| 667 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A5\"'")); |
| 668 EXPECT_EQ(kAc3Eac3Probably, |
| 669 CanPlay("'video/mp4; codecs=\"avc1.640028,ec-3\"'")); |
| 670 EXPECT_EQ(kAc3Eac3Probably, |
| 671 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a6\"'")); |
| 672 EXPECT_EQ(kAc3Eac3Probably, |
| 673 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A6\"'")); |
| 674 |
| 599 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); | 675 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); |
| 600 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); | 676 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); |
| 601 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); | 677 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); |
| 602 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); | 678 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); |
| 603 EXPECT_EQ(kPropMaybe, | 679 EXPECT_EQ(kPropMaybe, |
| 604 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); | 680 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); |
| 605 EXPECT_EQ(kPropMaybe, | 681 EXPECT_EQ(kPropMaybe, |
| 606 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); | 682 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); |
| 607 | 683 |
| 608 // TODO(servolk): Add more unit test coverage once we have more info about | 684 // TODO(servolk): Add more unit test coverage once we have more info about |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 | 739 |
| 664 EXPECT_EQ(kHevcSupported, | 740 EXPECT_EQ(kHevcSupported, |
| 665 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'")); | 741 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'")); |
| 666 EXPECT_EQ(kHevcSupported, | 742 EXPECT_EQ(kHevcSupported, |
| 667 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'")); | 743 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 668 EXPECT_EQ(kHevcSupported, | 744 EXPECT_EQ(kHevcSupported, |
| 669 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); | 745 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); |
| 670 EXPECT_EQ(kHevcSupported, | 746 EXPECT_EQ(kHevcSupported, |
| 671 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); | 747 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); |
| 672 | 748 |
| 749 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"ac-3\"'")); |
| 750 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.a5\"'")); |
| 751 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.A5\"'")); |
| 752 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"ec-3\"'")); |
| 753 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.a6\"'")); |
| 754 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/x-m4v; codecs=\"mp4a.A6\"'")); |
| 755 EXPECT_EQ(kAc3Eac3Probably, |
| 756 CanPlay("'video/x-m4v; codecs=\"avc1.640028,ac-3\"'")); |
| 757 EXPECT_EQ(kAc3Eac3Probably, |
| 758 CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.a5\"'")); |
| 759 EXPECT_EQ(kAc3Eac3Probably, |
| 760 CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.A5\"'")); |
| 761 EXPECT_EQ(kAc3Eac3Probably, |
| 762 CanPlay("'video/x-m4v; codecs=\"avc1.640028,ec-3\"'")); |
| 763 EXPECT_EQ(kAc3Eac3Probably, |
| 764 CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.a6\"'")); |
| 765 EXPECT_EQ(kAc3Eac3Probably, |
| 766 CanPlay("'video/x-m4v; codecs=\"avc1.640028,mp4a.A6\"'")); |
| 767 |
| 673 TestMPEGUnacceptableCombinations("video/x-m4v"); | 768 TestMPEGUnacceptableCombinations("video/x-m4v"); |
| 674 | 769 |
| 675 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); | 770 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); |
| 676 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); | 771 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); |
| 677 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); | 772 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); |
| 678 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); | 773 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); |
| 679 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); | 774 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); |
| 680 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); | 775 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); |
| 681 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); | 776 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); |
| 682 | 777 |
| 683 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); | 778 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); |
| 684 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); | 779 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); |
| 685 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); | 780 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); |
| 686 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); | 781 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); |
| 687 | 782 |
| 688 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); | 783 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); |
| 689 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); | 784 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); |
| 690 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.66.30\"'")); | 785 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.66.30\"'")); |
| 691 | 786 |
| 692 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); | 787 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); |
| 693 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); | 788 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 694 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | 789 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); |
| 695 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | 790 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); |
| 696 | 791 |
| 792 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'")); |
| 793 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'")); |
| 794 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'")); |
| 795 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ec-3\"'")); |
| 796 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'")); |
| 797 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'")); |
| 798 |
| 697 TestMPEGUnacceptableCombinations("audio/mp4"); | 799 TestMPEGUnacceptableCombinations("audio/mp4"); |
| 698 | 800 |
| 699 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); | 801 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); |
| 700 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); | 802 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); |
| 701 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); | 803 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); |
| 702 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); | 804 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); |
| 703 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); | 805 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); |
| 704 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); | 806 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); |
| 705 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); | 807 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); |
| 706 | 808 |
| 707 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); | 809 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1\"'")); |
| 708 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); | 810 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3\"'")); |
| 709 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); | 811 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'")); |
| 710 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); | 812 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'")); |
| 711 | 813 |
| 712 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); | 814 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'")); |
| 713 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); | 815 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'")); |
| 714 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.66.30\"'")); | 816 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"avc1.66.30\"'")); |
| 715 | 817 |
| 716 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'")); | 818 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0\"'")); |
| 717 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'")); | 819 EXPECT_EQ(kNot, CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 718 EXPECT_EQ(kNot, | 820 EXPECT_EQ(kNot, |
| 719 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); | 821 CanPlay("'audio/x-m4a; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); |
| 720 EXPECT_EQ(kNot, | 822 EXPECT_EQ(kNot, |
| 721 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); | 823 CanPlay("'audio/x-m4a; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); |
| 722 | 824 |
| 825 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"ac-3\"'")); |
| 826 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.a5\"'")); |
| 827 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.A5\"'")); |
| 828 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"ec-3\"'")); |
| 829 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.a6\"'")); |
| 830 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/x-m4a; codecs=\"mp4a.A6\"'")); |
| 831 |
| 723 TestMPEGUnacceptableCombinations("audio/x-m4a"); | 832 TestMPEGUnacceptableCombinations("audio/x-m4a"); |
| 724 } | 833 } |
| 725 | 834 |
| 726 // When modifying this test, also change CodecSupportTest_Avc3Variants. | 835 // When modifying this test, also change CodecSupportTest_Avc3Variants. |
| 727 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { | 836 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Avc1Variants) { |
| 728 // avc1 without extensions results in "maybe" for compatibility. | 837 // avc1 without extensions results in "maybe" for compatibility. |
| 729 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); | 838 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1\"'")); |
| 730 | 839 |
| 731 // Any 6-digit hexadecimal number will result in at least "maybe". | 840 // Any 6-digit hexadecimal number will result in at least "maybe". |
| 732 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); | 841 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1.123456\"'")); |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1099 | 1208 |
| 1100 EXPECT_EQ(kNot, | 1209 EXPECT_EQ(kNot, |
| 1101 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); | 1210 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); |
| 1102 EXPECT_EQ(kNot, | 1211 EXPECT_EQ(kNot, |
| 1103 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); | 1212 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 1104 EXPECT_EQ(kNot, | 1213 EXPECT_EQ(kNot, |
| 1105 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | 1214 CanPlay("'application/x-mpegurl; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); |
| 1106 EXPECT_EQ(kNot, | 1215 EXPECT_EQ(kNot, |
| 1107 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | 1216 CanPlay("'application/x-mpegurl; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); |
| 1108 | 1217 |
| 1218 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"ac-3\"'")); |
| 1219 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"ec-3\"'")); |
| 1220 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.A5\"'")); |
| 1221 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.A6\"'")); |
| 1222 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.a5\"'")); |
| 1223 EXPECT_EQ(kNot, CanPlay("'application/x-mpegurl; codecs=\"mp4a.a6\"'")); |
| 1224 |
| 1109 EXPECT_EQ(maybeCanPlayHLS, | 1225 EXPECT_EQ(maybeCanPlayHLS, |
| 1110 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); | 1226 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.2\"'")); |
| 1111 EXPECT_EQ(maybeCanPlayHLS, | 1227 EXPECT_EQ(maybeCanPlayHLS, |
| 1112 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); | 1228 CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a.40.02\"'")); |
| 1113 EXPECT_EQ(maybeCanPlayHLS, | 1229 EXPECT_EQ(maybeCanPlayHLS, |
| 1114 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); | 1230 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.2\"'")); |
| 1115 EXPECT_EQ(maybeCanPlayHLS, | 1231 EXPECT_EQ(maybeCanPlayHLS, |
| 1116 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); | 1232 CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a.40.02\"'")); |
| 1117 EXPECT_EQ(maybeCanPlayHLS, | 1233 EXPECT_EQ(maybeCanPlayHLS, |
| 1118 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); | 1234 CanPlay("'application/x-mpegurl; codecs=\"avc1.42E01E, mp4a.40\"'")); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1182 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); | 1298 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); |
| 1183 EXPECT_EQ(kNot, | 1299 EXPECT_EQ(kNot, |
| 1184 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); | 1300 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); |
| 1185 EXPECT_EQ(kNot, | 1301 EXPECT_EQ(kNot, |
| 1186 CanPlay("'application/vnd.apple.mpegurl; " | 1302 CanPlay("'application/vnd.apple.mpegurl; " |
| 1187 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); | 1303 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); |
| 1188 EXPECT_EQ(kNot, | 1304 EXPECT_EQ(kNot, |
| 1189 CanPlay("'application/vnd.apple.mpegurl; " | 1305 CanPlay("'application/vnd.apple.mpegurl; " |
| 1190 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); | 1306 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); |
| 1191 | 1307 |
| 1308 EXPECT_EQ(kNot, CanPlay("'application/vnd.apple.mpegurl; codecs=\"ac-3\"'")); |
| 1309 EXPECT_EQ(kNot, CanPlay("'application/vnd.apple.mpegurl; codecs=\"ec-3\"'")); |
| 1310 EXPECT_EQ(kNot, |
| 1311 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.A5\"'")); |
| 1312 EXPECT_EQ(kNot, |
| 1313 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.A6\"'")); |
| 1314 EXPECT_EQ(kNot, |
| 1315 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.a5\"'")); |
| 1316 EXPECT_EQ(kNot, |
| 1317 CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.a6\"'")); |
| 1318 |
| 1192 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); | 1319 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); |
| 1193 } | 1320 } |
| 1194 | 1321 |
| 1195 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AAC_ADTS) { | 1322 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AAC_ADTS) { |
| 1196 EXPECT_EQ(kPropProbably, CanPlay("'audio/aac'")); | 1323 EXPECT_EQ(kPropProbably, CanPlay("'audio/aac'")); |
| 1197 | 1324 |
| 1198 // audio/aac doesn't support the codecs parameter. | 1325 // audio/aac doesn't support the codecs parameter. |
| 1199 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"1\"'")); | 1326 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"1\"'")); |
| 1200 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"aac\"'")); | 1327 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"aac\"'")); |
| 1201 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"mp4a.40.2\"'")); | 1328 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"mp4a.40.2\"'")); |
| 1202 } | 1329 } |
| 1203 | 1330 |
| 1204 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) { | 1331 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) { |
| 1205 EXPECT_EQ(kMp2tsMaybe, CanPlay("'video/mp2t'")); | 1332 EXPECT_EQ(kMp2tsMaybe, CanPlay("'video/mp2t'")); |
| 1206 | 1333 |
| 1207 // video/mp2t must support standard RFC 6381 compliant H.264 / AAC codec ids. | 1334 // video/mp2t must support standard RFC 6381 compliant H.264 / AAC codec ids. |
| 1208 // H.264 baseline, main, high profiles | 1335 // H.264 baseline, main, high profiles |
| 1209 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.42E01E\"'")); | 1336 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.42E01E\"'")); |
| 1210 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.4D401E\"'")); | 1337 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.4D401E\"'")); |
| 1211 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.640028\"'")); | 1338 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.640028\"'")); |
| 1212 // AAC LC audio | 1339 // AAC LC audio |
| 1213 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'")); | 1340 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'")); |
| 1214 // H.264 + AAC audio combinations | 1341 // H.264 + AAC audio combinations |
| 1215 EXPECT_EQ(kMp2tsProbably, | 1342 EXPECT_EQ(kMp2tsProbably, |
| 1216 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'")); | 1343 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'")); |
| 1217 EXPECT_EQ(kMp2tsProbably, | 1344 EXPECT_EQ(kMp2tsProbably, |
| 1218 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'")); | 1345 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'")); |
| 1219 EXPECT_EQ(kMp2tsProbably, | 1346 EXPECT_EQ(kMp2tsProbably, |
| 1220 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'")); | 1347 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'")); |
| 1348 // H.264 + AC3/EAC3 audio combinations |
| 1349 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1350 CanPlay("'video/mp2t; codecs=\"avc1.640028,ac-3\"'")); |
| 1351 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1352 CanPlay("'video/mp2t; codecs=\"avc1.640028,ec-3\"'")); |
| 1353 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1354 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A5\"'")); |
| 1355 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1356 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A6\"'")); |
| 1357 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1358 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a5\"'")); |
| 1359 EXPECT_EQ(kMp2tsAc3Eac3Probably, |
| 1360 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a6\"'")); |
| 1221 | 1361 |
| 1222 TestMPEGUnacceptableCombinations("video/mp2t"); | 1362 TestMPEGUnacceptableCombinations("video/mp2t"); |
| 1223 } | 1363 } |
| 1224 | 1364 |
| 1225 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, | 1365 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, |
| 1226 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) { | 1366 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) { |
| 1227 // Old-style avc1/H.264 codec ids that are still being used by some HLS | 1367 // Old-style avc1/H.264 codec ids that are still being used by some HLS |
| 1228 // streaming apps for backward compatibility. | 1368 // streaming apps for backward compatibility. |
| 1229 // H.264 baseline profile | 1369 // H.264 baseline profile |
| 1230 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.66.10\"'")); | 1370 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.66.10\"'")); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1266 EXPECT_EQ(kMp2tsProbably, | 1406 EXPECT_EQ(kMp2tsProbably, |
| 1267 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'")); | 1407 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'")); |
| 1268 } | 1408 } |
| 1269 | 1409 |
| 1270 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) { | 1410 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) { |
| 1271 // audio/mp2t is currently not supported (see also crbug.com/556837). | 1411 // audio/mp2t is currently not supported (see also crbug.com/556837). |
| 1272 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'")); | 1412 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'")); |
| 1273 } | 1413 } |
| 1274 | 1414 |
| 1275 } // namespace content | 1415 } // namespace content |
| OLD | NEW |