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

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

Issue 2783963002: Add IsSupportedAudioConfig in MediaClient (Closed)
Patch Set: CR feedback Created 3 years, 8 months 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
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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 const char* kHevcSupported = kNot; 50 const char* kHevcSupported = kNot;
51 51
52 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) 52 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER)
53 const char* kMp2tsMaybe = kPropMaybe; 53 const char* kMp2tsMaybe = kPropMaybe;
54 const char* kMp2tsProbably = kPropProbably; 54 const char* kMp2tsProbably = kPropProbably;
55 #else 55 #else
56 const char* kMp2tsMaybe = kNot; 56 const char* kMp2tsMaybe = kNot;
57 const char* kMp2tsProbably = kNot; 57 const char* kMp2tsProbably = kNot;
58 #endif 58 #endif
59 59
60 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
61 const char* kAc3Eac3Probably = kPropProbably;
62 #else
63 const char* kAc3Eac3Probably = kNot;
64 #endif
65
66 #if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER) && \
67 BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
68 const char* kMp2tsAc3Eac3Probably = kPropProbably;
69 #else
70 const char* kMp2tsAc3Eac3Probably = kNot;
71 #endif
72
73 // High 10-bit profile is only available when we can use ffmpeg to decode H.264. 60 // High 10-bit profile is only available when we can use ffmpeg to decode H.264.
74 // Even though FFmpeg is used on Android, we only use platform decoders for 61 // Even though FFmpeg is used on Android, we only use platform decoders for
75 // H.264 62 // H.264
76 #if !defined(MEDIA_DISABLE_FFMPEG) && !defined(OS_ANDROID) 63 #if !defined(MEDIA_DISABLE_FFMPEG) && !defined(OS_ANDROID)
77 const char* kHi10pProbably = kPropProbably; 64 const char* kHi10pProbably = kPropProbably;
78 #else 65 #else
79 const char* kHi10pProbably = kPropMaybe; 66 const char* kHi10pProbably = kPropMaybe;
80 #endif 67 #endif
81 68
82 namespace content { 69 namespace content {
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after
821 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'")); 808 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'"));
822 EXPECT_EQ(kPropProbably, 809 EXPECT_EQ(kPropProbably,
823 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'")); 810 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40.02\"'"));
824 EXPECT_EQ(kPropProbably, 811 EXPECT_EQ(kPropProbably,
825 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'")); 812 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.5\"'"));
826 EXPECT_EQ(kPropProbably, 813 EXPECT_EQ(kPropProbably,
827 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'")); 814 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.05\"'"));
828 EXPECT_EQ(kPropProbably, 815 EXPECT_EQ(kPropProbably,
829 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'")); 816 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"'"));
830 817
831 // AC3 and EAC3 (aka Dolby Digital Plus, DD+) audio codecs. 818 // AC3 and EAC3 (aka Dolby Digital Plus, DD+) audio codecs. These are not
819 // supported by Chrome by default.
832 // TODO(servolk): Strictly speaking only mp4a.A5 and mp4a.A6 codec ids are 820 // TODO(servolk): Strictly speaking only mp4a.A5 and mp4a.A6 codec ids are
833 // valid according to RFC 6381 section 3.3, 3.4. Lower-case oti (mp4a.a5 and 821 // valid according to RFC 6381 section 3.3, 3.4. Lower-case oti (mp4a.a5 and
834 // mp4a.a6) should be rejected. But we used to allow those in older versions 822 // mp4a.a6) should be rejected. But we used to allow those in older versions
835 // of Chromecast firmware and some apps (notably MPL) depend on those codec 823 // of Chromecast firmware and some apps (notably MPL) depend on those codec
836 // types being supported, so they should be allowed for now (crbug.com/564960) 824 // types being supported, so they should be allowed for now (crbug.com/564960)
837 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ac-3\"'")); 825 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"ac-3\"'"));
838 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a5\"'")); 826 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"mp4a.a5\"'"));
839 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A5\"'")); 827 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"mp4a.A5\"'"));
840 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"ec-3\"'")); 828 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"ec-3\"'"));
841 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.a6\"'")); 829 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"mp4a.a6\"'"));
842 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'video/mp4; codecs=\"mp4a.A6\"'")); 830 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"mp4a.A6\"'"));
843 EXPECT_EQ(kAc3Eac3Probably, 831 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,ac-3\"'"));
844 CanPlay("'video/mp4; codecs=\"avc1.640028,ac-3\"'")); 832 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a5\"'"));
845 EXPECT_EQ(kAc3Eac3Probably, 833 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A5\"'"));
846 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a5\"'")); 834 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,ec-3\"'"));
847 EXPECT_EQ(kAc3Eac3Probably, 835 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a6\"'"));
848 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A5\"'")); 836 EXPECT_EQ(kNot, CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A6\"'"));
849 EXPECT_EQ(kAc3Eac3Probably,
850 CanPlay("'video/mp4; codecs=\"avc1.640028,ec-3\"'"));
851 EXPECT_EQ(kAc3Eac3Probably,
852 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.a6\"'"));
853 EXPECT_EQ(kAc3Eac3Probably,
854 CanPlay("'video/mp4; codecs=\"avc1.640028,mp4a.A6\"'"));
855 837
856 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'")); 838 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.2\"'"));
857 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'")); 839 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1, mp4a.40.02\"'"));
858 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'")); 840 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.2\"'"));
859 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'")); 841 EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3, mp4a.40.02\"'"));
860 EXPECT_EQ(kPropMaybe, 842 EXPECT_EQ(kPropMaybe,
861 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'")); 843 CanPlay("'video/mp4; codecs=\"avc1.42E01E, mp4a.40\"'"));
862 EXPECT_EQ(kPropMaybe, 844 EXPECT_EQ(kPropMaybe,
863 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'")); 845 CanPlay("'video/mp4; codecs=\"avc3.42E01E, mp4a.40\"'"));
864 846
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'")); 951 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
970 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'")); 952 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
971 953
972 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'")); 954 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0\"'"));
973 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'")); 955 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0\"'"));
974 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'")); 956 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hev1.1.6.L93.B0,mp4a.40.5\"'"));
975 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'")); 957 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"hvc1.1.6.L93.B0,mp4a.40.5\"'"));
976 958
977 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"vp09.00.10.08\"'")); 959 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"vp09.00.10.08\"'"));
978 960
979 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ac-3\"'")); 961 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"ac-3\"'"));
980 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'")); 962 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.a5\"'"));
981 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'")); 963 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.A5\"'"));
982 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"ec-3\"'")); 964 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"ec-3\"'"));
983 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'")); 965 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.a6\"'"));
984 EXPECT_EQ(kAc3Eac3Probably, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'")); 966 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"mp4a.A6\"'"));
985 967
986 TestMPEGUnacceptableCombinations("audio/mp4"); 968 TestMPEGUnacceptableCombinations("audio/mp4");
987 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"flac\"'")); 969 EXPECT_EQ(kNot, CanPlay("'audio/mp4; codecs=\"flac\"'"));
988 // This result is incorrect. See https://crbug.com/592889. 970 // This result is incorrect. See https://crbug.com/592889.
989 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp3\"'")); 971 EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp3\"'"));
990 972
991 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'")); 973 EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
992 974
993 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.66\"'")); 975 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.66\"'"));
994 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.67\"'")); 976 EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.67\"'"));
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 // AAC LC audio 1420 // AAC LC audio
1439 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'")); 1421 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp4a.40.2\"'"));
1440 // H.264 + AAC audio combinations 1422 // H.264 + AAC audio combinations
1441 EXPECT_EQ(kMp2tsProbably, 1423 EXPECT_EQ(kMp2tsProbably,
1442 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'")); 1424 CanPlay("'video/mp2t; codecs=\"avc1.42E01E,mp4a.40.2\"'"));
1443 EXPECT_EQ(kMp2tsProbably, 1425 EXPECT_EQ(kMp2tsProbably,
1444 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'")); 1426 CanPlay("'video/mp2t; codecs=\"avc1.4D401E,mp4a.40.2\"'"));
1445 EXPECT_EQ(kMp2tsProbably, 1427 EXPECT_EQ(kMp2tsProbably,
1446 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'")); 1428 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.40.2\"'"));
1447 // H.264 + AC3/EAC3 audio combinations 1429 // H.264 + AC3/EAC3 audio combinations
1448 EXPECT_EQ(kMp2tsAc3Eac3Probably, 1430 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,ac-3\"'"));
1449 CanPlay("'video/mp2t; codecs=\"avc1.640028,ac-3\"'")); 1431 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,ec-3\"'"));
1450 EXPECT_EQ(kMp2tsAc3Eac3Probably, 1432 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A5\"'"));
1451 CanPlay("'video/mp2t; codecs=\"avc1.640028,ec-3\"'")); 1433 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A6\"'"));
1452 EXPECT_EQ(kMp2tsAc3Eac3Probably, 1434 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a5\"'"));
1453 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A5\"'")); 1435 EXPECT_EQ(kNot, CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a6\"'"));
1454 EXPECT_EQ(kMp2tsAc3Eac3Probably,
1455 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.A6\"'"));
1456 EXPECT_EQ(kMp2tsAc3Eac3Probably,
1457 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a5\"'"));
1458 EXPECT_EQ(kMp2tsAc3Eac3Probably,
1459 CanPlay("'video/mp2t; codecs=\"avc1.640028,mp4a.a6\"'"));
1460 1436
1461 TestMPEGUnacceptableCombinations("video/mp2t"); 1437 TestMPEGUnacceptableCombinations("video/mp2t");
1462 // This result is incorrect. See https://crbug.com/592889. 1438 // This result is incorrect. See https://crbug.com/592889.
1463 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp3\"'")); 1439 EXPECT_EQ(kMp2tsProbably, CanPlay("'video/mp2t; codecs=\"mp3\"'"));
1464 } 1440 }
1465 1441
1466 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, 1442 IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest,
1467 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) { 1443 CodecSupportTest_Mpeg2Ts_LegacyAvc1_codec_ids) {
1468 // Old-style avc1/H.264 codec ids that are still being used by some HLS 1444 // Old-style avc1/H.264 codec ids that are still being used by some HLS
1469 // streaming apps for backward compatibility. 1445 // streaming apps for backward compatibility.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1575 {switches::kEnableNewVp9CodecString, "video/mp4", kNot, kNot}, 1551 {switches::kEnableNewVp9CodecString, "video/mp4", kNot, kNot},
1576 {switches::kEnableHDR, "video/webm", kProbably, kMaybe}, 1552 {switches::kEnableHDR, "video/webm", kProbably, kMaybe},
1577 {switches::kEnableNewVp9CodecString, "video/webm", kProbably, kMaybe}, 1553 {switches::kEnableNewVp9CodecString, "video/webm", kProbably, kMaybe},
1578 }; 1554 };
1579 1555
1580 INSTANTIATE_TEST_CASE_P(CodecSupportTest_NewVp9String, 1556 INSTANTIATE_TEST_CASE_P(CodecSupportTest_NewVp9String,
1581 MediaCanPlayNewVp9TypeTest, 1557 MediaCanPlayNewVp9TypeTest,
1582 ::testing::ValuesIn(kNewVp9ParamVariants)); 1558 ::testing::ValuesIn(kNewVp9ParamVariants));
1583 1559
1584 } // namespace content 1560 } // namespace content
OLDNEW
« no previous file with comments | « chromecast/media/base/media_codec_support.cc ('k') | content/renderer/media/render_media_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698