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

Unified Diff: net/base/mime_util.cc

Issue 952673002: Document some quirks of media MIME type code and reference related bugs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cpt-tests
Patch Set: Created 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/mime_util.cc
diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
index 7b51b41faf5c112e329effd848907c605b1e1875..d4ebbf452810bd913e3c4912b1b35b485c25926b 100644
--- a/net/base/mime_util.cc
+++ b/net/base/mime_util.cc
@@ -523,10 +523,18 @@ static const char kMP4AudioCodecsExpression[] =
"mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.02,mp4a.40.5,"
"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,"
"mp4a.66,mp4a.67,mp4a.68,mp4a.69,mp4a.6B,mp4a.40.2,mp4a.40.02,mp4a.40.5,"
"mp4a.40.05,mp4a.40.29";
+// These containers are also included in
+// common_media_types/proprietary_media_types. See crbug.com/461012.
static const MediaFormatStrict format_codec_mappings[] = {
{"video/webm", "opus,vorbis,vp8,vp8.0,vp9,vp9.0"},
{"audio/webm", "opus,vorbis"},
@@ -561,8 +569,9 @@ struct CodecIDMappings {
// codec and profile being requested.
//
// The "mp4a" strings come from RFC 6381.
-static const CodecIDMappings kUnambiguousCodecIDs[] = {
+static const CodecIDMappings kUnambiguousCodecStringMap[] = {
{"1", MimeUtil::PCM}, // We only allow this for WAV so it isn't ambiguous.
+ // avc1/avc3.XXXXXX may be unambiguous; handled by ParseH264CodecID().
{"mp3", MimeUtil::MP3},
{"mp4a.66", MimeUtil::MPEG2_AAC_MAIN},
{"mp4a.67", MimeUtil::MPEG2_AAC_LC},
@@ -586,10 +595,11 @@ static const CodecIDMappings kUnambiguousCodecIDs[] = {
// enough information to determine the codec and profile.
// The codec in these entries indicate the codec and profile
// we assume the user is trying to indicate.
-static const CodecIDMappings kAmbiguousCodecIDs[] = {
- { "mp4a.40", MimeUtil::MPEG4_AAC_LC },
- { "avc1", MimeUtil::H264_BASELINE },
- { "avc3", MimeUtil::H264_BASELINE },
+static const CodecIDMappings kAmbiguousCodecStringMap[] = {
+ {"mp4a.40", MimeUtil::MPEG4_AAC_LC},
+ {"avc1", MimeUtil::H264_BASELINE},
+ {"avc3", MimeUtil::H264_BASELINE},
+ // avc1/avc3.XXXXXX may be ambiguous; handled by ParseH264CodecID().
};
MimeUtil::MimeUtil() : allow_proprietary_codecs_(false) {
@@ -664,14 +674,14 @@ void MimeUtil::InitializeMimeTypeMaps() {
for (size_t i = 0; i < arraysize(supported_javascript_types); ++i)
javascript_map_.insert(supported_javascript_types[i]);
- for (size_t i = 0; i < arraysize(kUnambiguousCodecIDs); ++i) {
- string_to_codec_map_[kUnambiguousCodecIDs[i].codec_id] =
- CodecEntry(kUnambiguousCodecIDs[i].codec, false);
+ for (size_t i = 0; i < arraysize(kUnambiguousCodecStringMap); ++i) {
+ string_to_codec_map_[kUnambiguousCodecStringMap[i].codec_id] =
+ CodecEntry(kUnambiguousCodecStringMap[i].codec, false);
}
- for (size_t i = 0; i < arraysize(kAmbiguousCodecIDs); ++i) {
- string_to_codec_map_[kAmbiguousCodecIDs[i].codec_id] =
- CodecEntry(kAmbiguousCodecIDs[i].codec, true);
+ for (size_t i = 0; i < arraysize(kAmbiguousCodecStringMap); ++i) {
+ string_to_codec_map_[kAmbiguousCodecStringMap[i].codec_id] =
+ CodecEntry(kAmbiguousCodecStringMap[i].codec, true);
}
// Initialize the strict supported media types.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698