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

Unified Diff: media/base/mime_util.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, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: media/base/mime_util.cc
diff --git a/media/base/mime_util.cc b/media/base/mime_util.cc
index 73cddfdb7a3f9dff5c5fcff50e0cc707d0f462cc..63e97b73b3bc3037a129e88c28e9de8cd300e610 100644
--- a/media/base/mime_util.cc
+++ b/media/base/mime_util.cc
@@ -40,6 +40,11 @@ class MimeUtil {
VP8,
VP9,
THEORA
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
ddorwin 2015/11/25 22:24:08 Do we need to ifdef this? There are other propriet
servolk 2015/12/03 00:56:14 Done.
+ ,
+ AC3,
ddorwin 2015/11/25 22:24:08 Regardless, keep similar types (at least audio) to
servolk 2015/12/03 00:56:15 Done.
+ EAC3
+#endif
};
bool IsSupportedMediaMimeType(const std::string& mime_type) const;
@@ -217,6 +222,13 @@ static bool IsCodecSupportedOnAndroid(MimeUtil::Codec codec) {
// MPEG-2 variants of AAC are not supported on Android.
return false;
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
+ case MimeUtil::AC3:
+ case MimeUtil::EAC3:
+ // TODO(servolk): Revisit this for AC3/EAC3 support on AndroidTV
+ return false;
+#endif
+
case MimeUtil::VP9:
// VP9 is supported only in KitKat+ (API Level 19).
return base::android::BuildInfo::GetInstance()->sdk_int() >= 19;
@@ -256,6 +268,11 @@ struct MediaFormatStrict {
// avc1.6400xx - H.264 High
static const char kMP4AudioCodecsExpression[] =
"mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.02,mp4a.40.5,"
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
+ "ac-3,ec-3," // Note: only one variant of eac codec string is sufficient
ddorwin 2015/11/25 22:24:08 Same as the next comment.
servolk 2015/12/03 00:56:15 Done.
+ // here since these are converted into enums in
+ // InitializeMimeTypeMaps
+#endif
"mp4a.40.05,mp4a.40.29";
static const char kMP4VideoCodecsExpression[] =
// This is not a complete list of supported avc1 codecs. It is simply used
@@ -271,6 +288,11 @@ static const char kMP4VideoCodecsExpression[] =
"hev1.1.6.L93.B0,"
#endif
"mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.02,mp4a.40.5,"
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
+ "ac-3,ec-3," // Note: only one variant of eac codec string is sufficient
ddorwin 2015/11/25 22:24:08 Here and above, be consistent with existing text a
servolk 2015/12/03 00:56:15 Done.
+ // here since these are converted into enums in
+ // InitializeMimeTypeMaps
+#endif
"mp4a.40.05,mp4a.40.29";
// These containers are also included in
@@ -327,6 +349,14 @@ static const CodecIDMappings kUnambiguousCodecStringMap[] = {
{"mp4a.40.5", MimeUtil::MPEG4_AAC_SBR_v1},
{"mp4a.40.05", MimeUtil::MPEG4_AAC_SBR_v1},
{"mp4a.40.29", MimeUtil::MPEG4_AAC_SBR_PS_v2},
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
+ {"ac-3", MimeUtil::AC3},
+ {"ec-3", MimeUtil::EAC3},
ddorwin 2015/11/25 22:24:07 group the codecs together
servolk 2015/12/03 00:56:15 Done.
+ {"mp4a.a5", MimeUtil::AC3},
+ {"mp4a.A5", MimeUtil::AC3},
ddorwin 2015/11/25 22:24:08 Why both cases? Is one not "correct?" With everyth
servolk 2015/12/03 00:56:15 I've copied the comment from the unit test that re
+ {"mp4a.a6", MimeUtil::EAC3},
+ {"mp4a.A6", MimeUtil::EAC3},
+#endif
{"vorbis", MimeUtil::VORBIS},
{"opus", MimeUtil::OPUS},
{"vp8", MimeUtil::VP8},
@@ -696,6 +726,10 @@ bool MimeUtil::IsCodecSupported(Codec codec) const {
bool MimeUtil::IsCodecProprietary(Codec codec) const {
switch (codec) {
+#if defined(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
ddorwin 2015/11/25 22:24:08 ditto and match order of enum.
servolk 2015/12/03 00:56:15 Done.
+ case AC3:
+ case EAC3:
+#endif
case INVALID_CODEC:
case MP3:
case MPEG2_AAC_LC:

Powered by Google App Engine
This is Rietveld 408576698