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 |