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

Unified Diff: net/base/mime_util.cc

Issue 66863003: Add VP9 to canPlayType on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressing comments Created 7 years, 1 month 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 3d34428b8e503fa0a3f2ac5d8c0c4e58dc9e3100..efa65273666d21f1d1d60a14ef778d99b2749479 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,24 @@ static const char* const supported_javascript_types[] = {
"text/livescript"
};
+#if defined(OS_ANDROID)
+static bool IsCodecSupportedOnAndroid(const std::string& codec) {
+ // 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;
+ }
+ 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 +479,13 @@ 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]))
+ continue;
+#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 +499,13 @@ 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]))
+ continue;
+#endif
codecs.insert(mime_type_codecs[j]);
+ }
strict_format_map_[format_codec_mappings[i].mime_type] = codecs;
}
}
« 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