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

Unified Diff: media/base/mime_util_internal.cc

Issue 1728193004: Media: Do not support new codecs with legacy MIME type names. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review obsolete avc1 comments. Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: media/base/mime_util_internal.cc
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
index a0ce3c4951698d5f3f101f1d0cb4f866b4ca7ac3..37f6a121317773103cbde0fdaf633721d70e92d0 100644
--- a/media/base/mime_util_internal.cc
+++ b/media/base/mime_util_internal.cc
@@ -41,38 +41,52 @@ struct MediaFormat {
// mp4a.40.05 - MPEG-4 HE-AAC v1 (AAC LC + SBR) (leading 0 in aud-oti for
// compatibility)
// mp4a.40.29 - MPEG-4 HE-AAC v2 (AAC LC + SBR + PS)
-//
-// avc1.42E0xx - H.264 Baseline
ddorwin 2016/02/25 01:09:47 These three lines were not necessary before either
-// avc1.4D40xx - H.264 Main
-// 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,"
+#define ORIGINAL_MP4_AUDIO_CODECS \
+ "mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.02,mp4a.40.5," \
servolk 2016/02/25 01:46:06 Let's clean up those lists a little, while we are
ddorwin 2016/03/04 01:26:29 Let's handle that in https://bugs.chromium.org/p/c
+ "mp4a.40.05,mp4a.40.29"
+
#if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- // Only one variant each of ac3 and eac3 codec string is sufficient here,
- // since these strings are parsed and mapped to MimeUtil::Codec enum values.
- "ac-3,ec-3,"
+// Only one variant each of ac3 and eac3 codec string is sufficient here,
+// since these strings are parsed and mapped to MimeUtil::Codec enum values.
+#define NEWER_MP4_AUDIO_CODECS ",ac-3,ec-3"
+#else
+#define NEWER_MP4_AUDIO_CODECS
#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
- // to register support for the corresponding Codec enum. Instead of using
- // strings in these three arrays, we should use the Codec enum values.
- // This will avoid confusion and unnecessary parsing at runtime.
- // kUnambiguousCodecStringMap/kAmbiguousCodecStringMap should be the only
- // mapping from strings to codecs. See crbug.com/461009.
- "avc1.42E00A,avc1.4D400A,avc1.64000A,"
+
+#define MP4_AUDIO_CODECS ORIGINAL_MP4_AUDIO_CODECS NEWER_MP4_AUDIO_CODECS
+
+// This is not a complete list of supported avc1 codecs. It is simply used
+// to register support for the corresponding Codec enum. Instead of using
+// strings in these three arrays, we should use the Codec enum values.
+// This will avoid confusion and unnecessary parsing at runtime.
+// kUnambiguousCodecStringMap/kAmbiguousCodecStringMap should be the only
+// mapping from strings to codecs. See crbug.com/461009.
+#define ORIGINAL_MP4_VIDEO_CODECS "avc1.42E00A,avc1.4D400A,avc1.64000A"
servolk 2016/02/25 01:46:06 Now that all three of these codec ids map to the s
ddorwin 2016/03/04 01:26:29 Done.
+
#if BUILDFLAG(ENABLE_HEVC_DEMUXING)
- // Any valid unambiguous HEVC codec id will work here, since these strings
- // are parsed and mapped to MimeUtil::Codec enum values.
- "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 BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- // Only one variant each of ac3 and eac3 codec string is sufficient here,
- // since these strings are parsed and mapped to MimeUtil::Codec enum values.
- "ac-3,ec-3,"
+// Any valid unambiguous HEVC codec id will work here, since these strings
+// are parsed and mapped to MimeUtil::Codec enum values.
+#define NEWER_MP4_VIDEO_CODECS ",hev1.1.6.L93.B0,"
+#else
+#define NEWER_MP4_VIDEO_CODECS
#endif
- "mp4a.40.05,mp4a.40.29";
+
+#define MP4_VIDEO_CODECS ORIGINAL_MP4_VIDEO_CODECS NEWER_MP4_VIDEO_CODECS
+
+static const char kMP4AudioCodecsExpression[] = MP4_AUDIO_CODECS;
+static const char kXM4AudioCodecsExpression[] = ORIGINAL_MP4_AUDIO_CODECS;
+
+static const char kMP4VideoCodecsExpression[] =
+ MP4_VIDEO_CODECS "," MP4_AUDIO_CODECS;
+static const char kOriginalMp4VideoCodecsExpression[] =
servolk 2016/02/25 01:46:06 Each of k*Expression is only used once, so perhaps
ddorwin 2016/03/04 01:26:29 These are shorter. Also, this allows us to minimiz
+ ORIGINAL_MP4_VIDEO_CODECS "," ORIGINAL_MP4_AUDIO_CODECS;
+
+#undef ORIGINAL_MP4_AUDIO_CODECS
+#undef NEWER_MP4_AUDIO_CODECS
+#undef MP4_AUDIO_CODECS
+#undef ORIGINAL_MP4_VIDEO_CODECS
+#undef NEWER_MP4_VIDEO_CODECS
+#undef MP4_VIDEO_CODECS
#endif // USE_PROPRIETARY_CODECS
// A list of media types (https://en.wikipedia.org/wiki/Media_type) and
@@ -100,16 +114,17 @@ static const MediaFormat kFormatCodecMappings[] = {
{"audio/x-mp3", PROPRIETARY, ""},
{"audio/aac", PROPRIETARY, ""}, // AAC / ADTS
{"audio/mp4", PROPRIETARY, kMP4AudioCodecsExpression},
- {"audio/x-m4a", PROPRIETARY, kMP4AudioCodecsExpression},
+ {"audio/x-m4a", PROPRIETARY, kXM4AudioCodecsExpression},
{"video/mp4", PROPRIETARY, kMP4VideoCodecsExpression},
- {"video/x-m4v", PROPRIETARY, kMP4VideoCodecsExpression},
+ {"video/x-m4v", PROPRIETARY, kOriginalMp4VideoCodecsExpression},
#if BUILDFLAG(ENABLE_MSE_MPEG2TS_STREAM_PARSER)
{"video/mp2t", PROPRIETARY, kMP4VideoCodecsExpression},
#endif
#if defined(OS_ANDROID)
// HTTP Live Streaming (HLS)
- {"application/x-mpegurl", PROPRIETARY, kMP4VideoCodecsExpression},
- {"application/vnd.apple.mpegurl", PROPRIETARY, kMP4VideoCodecsExpression}
+ {"application/x-mpegurl", PROPRIETARY, kOriginalMp4VideoCodecsExpression},
ddorwin 2016/02/25 01:09:47 servolk: We don't have tests for the newer codecs,
servolk 2016/02/25 01:46:06 Acknowledged. Yes, AFAIK neither HEVC nor AC3/EAC3
+ {"application/vnd.apple.mpegurl", PROPRIETARY,
+ kOriginalMp4VideoCodecsExpression}
#endif
#endif // USE_PROPRIETARY_CODECS
};

Powered by Google App Engine
This is Rietveld 408576698