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

Side by Side Diff: media/base/mime_util_internal.h

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: Fix Android - extra comma caused empty string codec Created 4 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 #ifndef MEDIA_BASE_MIME_UTIL_INTERNAL_H_ 5 #ifndef MEDIA_BASE_MIME_UTIL_INTERNAL_H_
6 #define MEDIA_BASE_MIME_UTIL_INTERNAL_H_ 6 #define MEDIA_BASE_MIME_UTIL_INTERNAL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 typedef base::hash_set<int> CodecSet; 80 typedef base::hash_set<int> CodecSet;
81 typedef std::map<std::string, CodecSet> MediaFormatMappings; 81 typedef std::map<std::string, CodecSet> MediaFormatMappings;
82 struct CodecEntry { 82 struct CodecEntry {
83 CodecEntry() : codec(INVALID_CODEC), is_ambiguous(true) {} 83 CodecEntry() : codec(INVALID_CODEC), is_ambiguous(true) {}
84 CodecEntry(Codec c, bool ambiguous) : codec(c), is_ambiguous(ambiguous) {} 84 CodecEntry(Codec c, bool ambiguous) : codec(c), is_ambiguous(ambiguous) {}
85 Codec codec; 85 Codec codec;
86 bool is_ambiguous; 86 bool is_ambiguous;
87 }; 87 };
88 typedef std::map<std::string, CodecEntry> StringToCodecMappings; 88 typedef std::map<std::string, CodecEntry> StringToCodecMappings;
89 89
90 // For faster lookup, keep hash sets. 90 // Initializes the supported media types into hash sets for faster lookup.
91 void InitializeMimeTypeMaps(); 91 void InitializeMimeTypeMaps();
92 92
93 // Initializes the supported media formats (|media_format_map_|).
94 void AddSupportedMediaFormats();
95
96 // Adds |mime_type| with the specified codecs to |media_format_map_|.
97 void AddContainerWithCodecs(const std::string& mime_type,
98 const std::string& codecs_list,
99 bool is_proprietary_mime_type);
100
93 // Returns IsSupported if all codec IDs in |codecs| are unambiguous and are 101 // Returns IsSupported if all codec IDs in |codecs| are unambiguous and are
94 // supported in |mime_type_lower_case|. MayBeSupported is returned if at least 102 // supported in |mime_type_lower_case|. MayBeSupported is returned if at least
95 // one codec ID in |codecs| is ambiguous but all the codecs are supported. 103 // one codec ID in |codecs| is ambiguous but all the codecs are supported.
96 // IsNotSupported is returned if |mime_type_lower_case| is not supported or at 104 // IsNotSupported is returned if |mime_type_lower_case| is not supported or at
97 // least one is not supported in |mime_type_lower_case|. |is_encrypted| means 105 // least one is not supported in |mime_type_lower_case|. |is_encrypted| means
98 // the codec will be used with encrypted blocks. 106 // the codec will be used with encrypted blocks.
99 SupportsType AreSupportedCodecs(const CodecSet& supported_codecs, 107 SupportsType AreSupportedCodecs(const CodecSet& supported_codecs,
100 const std::vector<std::string>& codecs, 108 const std::vector<std::string>& codecs,
101 const std::string& mime_type_lower_case, 109 const std::string& mime_type_lower_case,
102 bool is_encrypted) const; 110 bool is_encrypted) const;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 bool is_encrypted) const; 145 bool is_encrypted) const;
138 146
139 #if defined(OS_ANDROID) 147 #if defined(OS_ANDROID)
140 // Indicates the support of various codecs within the platform. 148 // Indicates the support of various codecs within the platform.
141 PlatformInfo platform_info_; 149 PlatformInfo platform_info_;
142 #endif 150 #endif
143 151
144 // A map of mime_types and hash map of the supported codecs for the mime_type. 152 // A map of mime_types and hash map of the supported codecs for the mime_type.
145 MediaFormatMappings media_format_map_; 153 MediaFormatMappings media_format_map_;
146 154
147 // Keeps track of whether proprietary codec support should be 155 // List of proprietary containers in |media_format_map_|.
148 // advertised to callers. 156 std::vector<std::string> proprietary_media_containers_;
157 // Whether proprietary codec support should be advertised to callers.
149 bool allow_proprietary_codecs_; 158 bool allow_proprietary_codecs_;
150 159
151 // Lookup table for string compare based string -> Codec mappings. 160 // Lookup table for string compare based string -> Codec mappings.
152 StringToCodecMappings string_to_codec_map_; 161 StringToCodecMappings string_to_codec_map_;
153 162
154 DISALLOW_COPY_AND_ASSIGN(MimeUtil); 163 DISALLOW_COPY_AND_ASSIGN(MimeUtil);
155 }; 164 };
156 165
157 } // namespace internal 166 } // namespace internal
158 } // namespace media 167 } // namespace media
159 168
160 #endif // MEDIA_BASE_MIME_UTIL_INTERNAL_H_ 169 #endif // MEDIA_BASE_MIME_UTIL_INTERNAL_H_
OLDNEW
« no previous file with comments | « content/browser/media/media_canplaytype_browsertest.cc ('k') | media/base/mime_util_internal.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698