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