Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(854)

Side by Side Diff: content/browser/media/media_canplaytype_browsertest.cc

Issue 812643005: Re-add AC3/EAC3 audio demuxing support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move CanPlay tests into _mp4 test case Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | media/base/audio_decoder_config.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
56 namespace content { 62 namespace content {
57 63
58 class MediaCanPlayTypeTest : public MediaBrowserTest { 64 class MediaCanPlayTypeTest : public MediaBrowserTest {
59 public: 65 public:
60 MediaCanPlayTypeTest() : url_("about:blank") { } 66 MediaCanPlayTypeTest() : url_("about:blank") { }
61 67
62 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); } 68 void SetUpOnMainThread() override { NavigateToURL(shell(), url_); }
63 69
64 std::string CanPlay(const std::string& type) { 70 std::string CanPlay(const std::string& type) {
65 std::string command("document.createElement('video').canPlayType("); 71 std::string command("document.createElement('video').canPlayType(");
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 CanPlay("'" + mime + "; codecs=\", AVC3.64001F, MP4.40.02\"'")); 216 CanPlay("'" + mime + "; codecs=\", AVC3.64001F, MP4.40.02\"'"));
211 217
212 // Unknown codecs. 218 // Unknown codecs.
213 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'")); 219 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc2\"'"));
214 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'")); 220 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc4\"'"));
215 221
216 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'")); 222 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc1x\"'"));
217 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'")); 223 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"avc3x\"'"));
218 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'")); 224 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4ax\"'"));
219 225
226 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-\"'"));
ddorwin 2015/11/25 22:24:07 ac ec ac3 ec3
servolk 2015/12/03 00:56:14 Done.
227 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-\"'"));
228 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-2\"'"));
229 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-2\"'"));
230 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ac-4\"'"));
231 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"ec-4\"'"));
232 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a4\"'"));
233 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a7\"'"));
234 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5.\"'"));
235 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6.\"'"));
236 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a5.1\"'"));
237 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"mp4a.a6.1\"'"));
238
220 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'")); 239 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"unknown\"'"));
221 240
222 // Don't allow incomplete/ambiguous codec ids for HEVC. 241 // Don't allow incomplete/ambiguous codec ids for HEVC.
223 // Codec string must have info about codec level/profile, as described in 242 // 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" 243 // ISO/IEC FDIS 14496-15 section E.3, for example "hev1.1.6.L93.B0"
225 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'")); 244 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1\"'"));
226 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'")); 245 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1\"'"));
227 246
228 // Invalid codecs that look like something similar to HEVC/H.265 247 // Invalid codecs that look like something similar to HEVC/H.265
229 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'")); 248 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1x\"'"));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'")); 301 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3.64001F\"'"));
283 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.66.30\"'")); 302 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1.66.30\"'"));
284 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'")); 303 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, vorbis\"'"));
285 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'")); 304 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, vorbis\"'"));
286 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'")); 305 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc1, opus\"'"));
287 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'")); 306 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"avc3, opus\"'"));
288 307
289 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'")); 308 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0\"'"));
290 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'")); 309 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0\"'"));
291 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hev1.1.6.L93.B0,opus\"'")); 310 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\"'")); 311 EXPECT_EQ(kNot, CanPlay("'" + mime + "; codecs=\"hvc1.1.6.L93.B0,opus\"'"));
ddorwin 2015/11/25 22:24:07 Add valid ac3/eac3 strings to all the non-mpeg tes
servolk 2015/12/03 00:56:14 Done.
293 312
294 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'")); 313 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40\"'"));
295 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'")); 314 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.2\"'"));
296 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'")); 315 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"mp4a.40.02\"'"));
297 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'")); 316 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.2\"'"));
298 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'")); 317 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, mp4a.40.02\"'"));
299 318
300 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'")); 319 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"1\"'"));
301 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'")); 320 EXPECT_EQ(kNot, CanPlay("'" + mime +"; codecs=\"theora, 1\"'"));
302 321
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'")); 605 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'"));
587 EXPECT_EQ(kPropProbably, 606 EXPECT_EQ(kPropProbably,
588 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'")); 607 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'"));
589 EXPECT_EQ(kPropProbably, 608 EXPECT_EQ(kPropProbably,
590 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'")); 609 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'"));
591 EXPECT_EQ(kPropProbably, 610 EXPECT_EQ(kPropProbably,
592 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'")); 611 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'"));
593 EXPECT_EQ(kPropProbably, 612 EXPECT_EQ(kPropProbably,
594 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'")); 613 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'"));
595 614
615 // AC3 and EAC3 (aka Dolby Digital Plus, DD+) audio codecs.
616 // TODO(servolk): Strictly speaking only mp4a.A5 and mp4a.A6 codec ids are
617 // valid according to RFC 6381 section 3.3, 3.4. Lower-case oti (mp4a.a5 and
618 // mp4a.a6) should be rejected. But we used to allow those in older versions
619 // of Chromecast firmware and some apps (notably MPL) depend on those codec
620 // types being supported, so they should be allowed for now.
ddorwin 2015/11/25 22:24:07 bug reference?
servolk 2015/12/03 00:56:14 Done.
621 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ac-3\"'"));
622 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a5\"'"));
623 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A5\"'"));
624 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ec-3\"'"));
625 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a6\"'"));
626 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A6\"'"));
627 EXPECT_EQ(kAc3Eac3Probably,
628 CanPlay("'video/mp4; codecs=\"avc1.640028,ac-3\"'"));
629 EXPECT_EQ(kAc3Eac3Probably,
630 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a5\"'"));
631 EXPECT_EQ(kAc3Eac3Probably,
632 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A5\"'"));
633 EXPECT_EQ(kAc3Eac3Probably,
634 CanPlay("'video/mp4; codecs=\"avc1.640028,ec-3\"'"));
635 EXPECT_EQ(kAc3Eac3Probably,
636 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a6\"'"));
637 EXPECT_EQ(kAc3Eac3Probably,
638 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A6\"'"));
639
596 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); 640 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'"));
597 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); 641 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'"));
598 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); 642 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'"));
599 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); 643 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'"));
600 EXPECT_EQ(kPropMaybe, 644 EXPECT_EQ(kPropMaybe,
601 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); 645 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'"));
602 EXPECT_EQ(kPropMaybe, 646 EXPECT_EQ(kPropMaybe,
603 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); 647 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'"));
604 648
605 // TODO(servolk): Add more unit test coverage once we have more info about 649 // TODO(servolk): Add more unit test coverage once we have more info about
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 EXPECT_EQ(kPropMaybe, 702 EXPECT_EQ(kPropMaybe,
659 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'")); 703 CanPlay("'video/x-m4v; codecs=\"avc3.42E01E, mp4a.40\"'"));
660 704
661 EXPECT_EQ(kHevcSupported, 705 EXPECT_EQ(kHevcSupported,
662 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'")); 706 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0\"'"));
663 EXPECT_EQ(kHevcSupported, 707 EXPECT_EQ(kHevcSupported,
664 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'")); 708 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0\"'"));
665 EXPECT_EQ(kHevcSupported, 709 EXPECT_EQ(kHevcSupported,
666 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'")); 710 CanPlay("'video/x-m4v; codecs=\"hev1.1.6.L93.B0, mp4a.40.5\"'"));
667 EXPECT_EQ(kHevcSupported, 711 EXPECT_EQ(kHevcSupported,
668 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'")); 712 CanPlay("'video/x-m4v; codecs=\"hvc1.1.6.L93.B0, mp4a.40.5\"'"));
ddorwin 2015/11/25 22:24:07 Test the x- variants for audio and video.
servolk 2015/12/03 00:56:14 Done.
669 713
670 TestMPEGUnacceptableCombinations("video/x-m4v"); 714 TestMPEGUnacceptableCombinations("video/x-m4v");
671 715
672 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'")); 716 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'"));
673 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'")); 717 EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4a.40\"'"));
674 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'")); 718 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'"));
675 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'")); 719 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.02\"'"));
676 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'")); 720 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.5\"'"));
677 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'")); 721 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.05\"'"));
678 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'")); 722 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.29\"'"));
679 723
680 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'")); 724 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1\"'"));
681 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'")); 725 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3\"'"));
682 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'")); 726 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1, mp4a.40\"'"));
683 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'")); 727 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3, mp4a.40\"'"));
684 728
685 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 729 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
686 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 730 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
687 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.66.30\"'")); 731 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.66.30\"'"));
688 732
689 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); 733 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\"'")); 734 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\"'")); 735 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\"'")); 736 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
693 737
738 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'"));
739 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'"));
740 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'"));
741 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ec-3\"'"));
742 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'"));
743 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'"));
744
694 TestMPEGUnacceptableCombinations("audio/mp4"); 745 TestMPEGUnacceptableCombinations("audio/mp4");
695 746
696 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); 747 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
697 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'")); 748 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4a.40\"'"));
698 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'")); 749 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'"));
699 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'")); 750 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.02\"'"));
700 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'")); 751 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.5\"'"));
701 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'")); 752 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.05\"'"));
702 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'")); 753 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.29\"'"));
703 754
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 1083
1033 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.4.2\"'")); 1084 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.4.2\"'"));
1034 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.400.2\"'")); 1085 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.400.2\"'"));
1035 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.040.2\"'")); 1086 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.040.2\"'"));
1036 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.4.5\"'")); 1087 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.4.5\"'"));
1037 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.400.5\"'")); 1088 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.400.5\"'"));
1038 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.040.5\"'")); 1089 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.040.5\"'"));
1039 } 1090 }
1040 1091
1041 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) { 1092 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) {
1042 // HLS are supported only on Android IceCreamSandwich and above (API level 14) 1093 // HLS are supported only on Android IceCreamSandwich and above (API level 14)
ddorwin 2015/11/25 22:24:07 Separate CL: We can remove this check. We might se
servolk 2015/12/03 00:56:14 Acknowledged.
1043 std::string probablyCanPlayHLS = kNot; 1094 std::string probablyCanPlayHLS = kNot;
1044 std::string maybeCanPlayHLS = kNot; 1095 std::string maybeCanPlayHLS = kNot;
1045 #if defined(OS_ANDROID) 1096 #if defined(OS_ANDROID)
1046 if (base::android::BuildInfo::GetInstance()->sdk_int() > 13) { 1097 if (base::android::BuildInfo::GetInstance()->sdk_int() > 13) {
1047 probablyCanPlayHLS = kProbably; 1098 probablyCanPlayHLS = kProbably;
1048 maybeCanPlayHLS = kMaybe; 1099 maybeCanPlayHLS = kMaybe;
1049 } 1100 }
1050 #endif 1101 #endif
1051 EXPECT_EQ(maybeCanPlayHLS, CanPlay("'application/x-mpegurl'")); 1102 EXPECT_EQ(maybeCanPlayHLS, CanPlay("'application/x-mpegurl'"));
1052 1103
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 CanPlay("'application/vnd.apple.mpegurl; " 1223 CanPlay("'application/vnd.apple.mpegurl; "
1173 "codecs=\"avc1.42E01E, mp4a.40\"'")); 1224 "codecs=\"avc1.42E01E, mp4a.40\"'"));
1174 EXPECT_EQ(maybeCanPlayHLS, 1225 EXPECT_EQ(maybeCanPlayHLS,
1175 CanPlay("'application/vnd.apple.mpegurl; " 1226 CanPlay("'application/vnd.apple.mpegurl; "
1176 "codecs=\"avc3.42E01E, mp4a.40\"'")); 1227 "codecs=\"avc3.42E01E, mp4a.40\"'"));
1177 1228
1178 EXPECT_EQ(kNot, 1229 EXPECT_EQ(kNot,
1179 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'")); 1230 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hev1.1.6.L93.B0\"'"));
1180 EXPECT_EQ(kNot, 1231 EXPECT_EQ(kNot,
1181 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'")); 1232 CanPlay("'application/vnd.apple.mpegurl; codecs=\"hvc1.1.6.L93.B0\"'"));
1182 EXPECT_EQ(kNot, 1233 EXPECT_EQ(kNot,
ddorwin 2015/11/25 22:24:07 I don't think these are correct when HEVC is suppo
servolk 2015/12/03 00:56:14 No, but HLS mime types are only enabled for Androi
1183 CanPlay("'application/vnd.apple.mpegurl; " 1234 CanPlay("'application/vnd.apple.mpegurl; "
1184 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); 1235 "codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
1185 EXPECT_EQ(kNot, 1236 EXPECT_EQ(kNot,
1186 CanPlay("'application/vnd.apple.mpegurl; " 1237 CanPlay("'application/vnd.apple.mpegurl; "
1187 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); 1238 "codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
ddorwin 2015/11/25 22:24:07 Add test for ac3/eac3.
servolk 2015/12/03 00:56:14 Done.
1188 1239
1189 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl"); 1240 TestMPEGUnacceptableCombinations("application/vnd.apple.mpegurl");
1190 } 1241 }
1191 1242
1192 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AAC_ADTS) { 1243 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_AAC_ADTS) {
1193 EXPECT_EQ(kPropProbably, CanPlay("'audio/aac'")); 1244 EXPECT_EQ(kPropProbably, CanPlay("'audio/aac'"));
1194 1245
1195 // audio/aac doesn't support the codecs parameter. 1246 // audio/aac doesn't support the codecs parameter.
1196 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"1\"'")); 1247 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"1\"'"));
1197 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"aac\"'")); 1248 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"aac\"'"));
1198 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"mp4a.40.2\"'")); 1249 EXPECT_EQ(kNot, CanPlay("'audio/aac; codecs=\"mp4a.40.2\"'"));
1199 } 1250 }
1200 1251
1201 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) { 1252 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2Ts) {
1202 EXPECT_EQ(kMp2tsMaybe, CanPlay("'video/mp2t'")); 1253 EXPECT_EQ(kMp2tsMaybe, CanPlay("'video/mp2t'"));
1203 1254
1204 // video/mp2t must support standard RFC 6381 compliant H.264 / AAC codec ids. 1255 // video/mp2t must support standard RFC 6381 compliant H.264 / AAC codec ids.
1205 // H.264 baseline, main, high profiles 1256 // H.264 baseline, main, high profiles
1206 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.42E01E\"'")); 1257 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.42E01E\"'"));
1207 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.4D401E\"'")); 1258 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.4D401E\"'"));
1208 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.640028\"'")); 1259 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.640028\"'"));
1209 // AAC LC audio 1260 // AAC LC audio
1210 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'")); 1261 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'"));
1211 // H.264 + AAC audio combinations 1262 // H.264 + AAC audio combinations
1212 EXPECT_EQ(kMp2tsProbably, 1263 EXPECT_EQ(kMp2tsProbably,
1213 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'")); 1264 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'"));
1214 EXPECT_EQ(kMp2tsProbably, 1265 EXPECT_EQ(kMp2tsProbably,
1215 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'")); 1266 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'"));
1216 EXPECT_EQ(kMp2tsProbably, 1267 EXPECT_EQ(kMp2tsProbably,
1217 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'")); 1268 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'"));
ddorwin 2015/11/25 22:24:07 ditto HEVC too
servolk 2015/12/03 00:56:14 Done. (added AC3/EAC3 in mpeg2ts container, let's
1218 1269
1219 TestMPEGUnacceptableCombinations("video/mp2t"); 1270 TestMPEGUnacceptableCombinations("video/mp2t");
1220 } 1271 }
1221 1272
1222 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, 1273 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest,
1223 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) { 1274 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) {
1224 // Old-style avc1/H.264 codec ids that are still being used by some HLS 1275 // Old-style avc1/H.264 codec ids that are still being used by some HLS
1225 // streaming apps for backward compatibility. 1276 // streaming apps for backward compatibility.
1226 // H.264 baseline profile 1277 // H.264 baseline profile
1227 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.66.10\"'")); 1278 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"avc1.66.10\"'"));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 EXPECT_EQ(kMp2tsProbably, 1314 EXPECT_EQ(kMp2tsProbably,
1264 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'")); 1315 CanPlay("'video/mp2t; codecs=\"avc1.100.40,mp4a.40.2\"'"));
1265 } 1316 }
1266 1317
1267 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) { 1318 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_Mpeg2TsAudio) {
1268 // audio/mp2t is currently not supported (see also crbug.com/556837). 1319 // audio/mp2t is currently not supported (see also crbug.com/556837).
1269 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'")); 1320 EXPECT_EQ(kNot, CanPlay("'audio/mp2t; codecs=\"mp4a.40.2\"'"));
1270 } 1321 }
1271 1322
1272 } // namespace content 1323 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/content_tests.gypi » ('j') | media/base/audio_decoder_config.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698