| Index: net/base/mime_util.cc
|
| diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
|
| index 4cbb94dc6b487941eac2feb73f7c3660d74a2577..24119c5f13dc7044d21fe8943dbd1d504ec47617 100644
|
| --- a/net/base/mime_util.cc
|
| +++ b/net/base/mime_util.cc
|
| @@ -37,6 +37,8 @@ class MimeUtil : public PlatformMimeUtil {
|
| bool MatchesMimeType(const std::string &mime_type_pattern,
|
| const std::string &mime_type) const;
|
|
|
| + bool AreSupportedMediaCodecs(const std::vector<std::string>& codecs) const;
|
| +
|
| void ParseCodecString(const std::string& codecs,
|
| std::vector<std::string>* codecs_out);
|
|
|
| @@ -55,6 +57,7 @@ class MimeUtil : public PlatformMimeUtil {
|
| MimeMappings non_image_map_;
|
| MimeMappings javascript_map_;
|
| MimeMappings view_source_map_;
|
| + MimeMappings codecs_map_;
|
| }; // class MimeUtil
|
|
|
| struct MimeInfo {
|
| @@ -203,6 +206,19 @@ static const char* const supported_media_types[] = {
|
| "video/mpeg"
|
| };
|
|
|
| +// List of supported codecs when passed in with <source type="...">.
|
| +//
|
| +// Refer to http://wiki.whatwg.org/wiki/Video_type_parameters#Browser_Support
|
| +// for more information.
|
| +static const char* const supported_media_codecs[] = {
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + "avc1",
|
| + "mp4a",
|
| +#endif
|
| + "theora",
|
| + "vorbis",
|
| +};
|
| +
|
| // Note: does not include javascript types list (see supported_javascript_types)
|
| static const char* const supported_non_image_types[] = {
|
| "text/html",
|
| @@ -277,6 +293,9 @@ void MimeUtil::InitializeMimeTypeMaps() {
|
|
|
| for (size_t i = 0; i < arraysize(view_source_types); ++i)
|
| view_source_map_.insert(view_source_types[i]);
|
| +
|
| + for (size_t i = 0; i < arraysize(supported_media_codecs); ++i)
|
| + codecs_map_.insert(supported_media_codecs[i]);
|
| }
|
|
|
| bool MimeUtil::IsSupportedImageMimeType(const char* mime_type) const {
|
| @@ -343,6 +362,16 @@ bool MimeUtil::MatchesMimeType(const std::string &mime_type_pattern,
|
| return true;
|
| }
|
|
|
| +bool MimeUtil::AreSupportedMediaCodecs(
|
| + const std::vector<std::string>& codecs) const {
|
| + for (size_t i = 0; i < codecs.size(); ++i) {
|
| + if (codecs_map_.find(codecs[i]) == codecs_map_.end()) {
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| +}
|
| +
|
| void MimeUtil::ParseCodecString(const std::string& codecs,
|
| std::vector<std::string>* codecs_out) {
|
| std::string no_quote_codecs;
|
| @@ -410,6 +439,10 @@ bool MatchesMimeType(const std::string &mime_type_pattern,
|
| return GetMimeUtil()->MatchesMimeType(mime_type_pattern, mime_type);
|
| }
|
|
|
| +bool AreSupportedMediaCodecs(const std::vector<std::string>& codecs) {
|
| + return GetMimeUtil()->AreSupportedMediaCodecs(codecs);
|
| +}
|
| +
|
| void ParseCodecString(const std::string& codecs,
|
| std::vector<std::string>* codecs_out) {
|
| GetMimeUtil()->ParseCodecString(codecs, codecs_out);
|
|
|