Chromium Code Reviews| Index: net/base/mime_util.cc |
| diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc |
| index 3d34428b8e503fa0a3f2ac5d8c0c4e58dc9e3100..f153b37b1dd11099bbf4b703c72eb742aac8cf8d 100644 |
| --- a/net/base/mime_util.cc |
| +++ b/net/base/mime_util.cc |
| @@ -17,6 +17,10 @@ |
| #include "net/base/mime_util.h" |
| #include "net/base/platform_mime_util.h" |
| +#if defined(OS_ANDROID) |
| +#include "base/android/build_info.h" |
| +#endif |
| + |
| using std::string; |
| namespace { |
| @@ -304,11 +308,10 @@ static const char* const proprietary_media_types[] = { |
| static const char* const common_media_codecs[] = { |
| #if !defined(OS_ANDROID) // Android doesn't support Ogg Theora. |
| "theora", |
| - "vp9", // TODO(tomfinegan): Move vp9 back down with vp8 once VP9 is supported |
| - // on Android. https://crbug.com/285016 |
| #endif |
| "vorbis", |
| "vp8", |
| + "vp9", |
| "1" // WAVE_FORMAT_PCM. |
| }; |
| @@ -409,19 +412,23 @@ static const char* const supported_javascript_types[] = { |
| "text/livescript" |
| }; |
| +#if defined(OS_ANDROID) |
| +static bool IsCodecSupportedOnAndroid(std::string codec) { |
|
scherkus (not reviewing)
2013/11/11 21:33:46
const-ref
vignesh
2013/11/12 00:02:48
Done.
|
| + // VP9 is supported only in KitKat+ (API Level 19). |
| + if ((!codec.compare("vp9") || !codec.compare("vp9.0")) && |
| + base::android::BuildInfo::GetInstance()->sdk_int() < 19) |
| + return false; |
|
qinmin
2013/11/11 21:52:50
you need {} as the if statement contains multiple
vignesh
2013/11/12 00:02:48
Done.
|
| + return true; |
| +} |
| +#endif |
| + |
| struct MediaFormatStrict { |
| const char* mime_type; |
| const char* codecs_list; |
| }; |
| static const MediaFormatStrict format_codec_mappings[] = { |
| - // TODO(tomfinegan): Remove this if/else when VP9 is supported on Android. |
| - // https://crbug.com/285016 |
| -#if !defined(OS_ANDROID) |
| { "video/webm", "vorbis,vp8,vp8.0,vp9,vp9.0" }, |
| -#else |
| - { "video/webm", "vorbis,vp8,vp8.0" }, |
| -#endif |
| { "audio/webm", "vorbis" }, |
| { "audio/wav", "1" } |
| }; |
| @@ -471,8 +478,12 @@ 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(common_media_codecs); ++i) |
| + for (size_t i = 0; i < arraysize(common_media_codecs); ++i) { |
| +#if defined(OS_ANDROID) |
| + if (IsCodecSupportedOnAndroid(common_media_codecs[i])) |
|
scherkus (not reviewing)
2013/11/11 21:33:46
technically line 485 should be indented as this if
vignesh
2013/11/12 00:02:48
Nice idea. Done.
|
| +#endif |
| codecs_map_.insert(common_media_codecs[i]); |
| + } |
| #if defined(USE_PROPRIETARY_CODECS) |
| for (size_t i = 0; i < arraysize(proprietary_media_codecs); ++i) |
| codecs_map_.insert(proprietary_media_codecs[i]); |
| @@ -486,8 +497,12 @@ void MimeUtil::InitializeMimeTypeMaps() { |
| false); |
| MimeMappings codecs; |
| - for (size_t j = 0; j < mime_type_codecs.size(); ++j) |
| + for (size_t j = 0; j < mime_type_codecs.size(); ++j) { |
| +#if defined(OS_ANDROID) |
| + if (IsCodecSupportedOnAndroid(mime_type_codecs[j])) |
|
scherkus (not reviewing)
2013/11/11 21:33:46
ditto
vignesh
2013/11/12 00:02:48
Done.
|
| +#endif |
| codecs.insert(mime_type_codecs[j]); |
| + } |
| strict_format_map_[format_codec_mappings[i].mime_type] = codecs; |
| } |
| } |