Index: media/base/android/media_codec_bridge.cc |
diff --git a/media/base/android/media_codec_bridge.cc b/media/base/android/media_codec_bridge.cc |
index eb30f28966196c7a15c7cc14b4468491f6fe450f..27d931e36c94a3b77845b118aef180de4acf1150 100644 |
--- a/media/base/android/media_codec_bridge.cc |
+++ b/media/base/android/media_codec_bridge.cc |
@@ -24,6 +24,7 @@ |
using base::android::AttachCurrentThread; |
using base::android::ConvertJavaStringToUTF8; |
using base::android::ConvertUTF8ToJavaString; |
+using base::android::JavaIntArrayToIntVector; |
using base::android::ScopedJavaLocalRef; |
namespace media { |
@@ -171,6 +172,27 @@ std::string MediaCodecBridge::GetDefaultCodecName( |
} |
// static |
+std::set<int> MediaCodecBridge::GetEncoderColorFormats( |
+ const std::string& mime_type) { |
+ std::set<int> color_formats; |
+ if (!IsAvailable()) |
+ return color_formats; |
+ |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime_type); |
+ ScopedJavaLocalRef<jintArray> j_color_format_array = |
+ Java_MediaCodecBridge_getEncoderColorFormatsForMime(env, j_mime.obj()); |
+ |
+ if (j_color_format_array.obj()) { |
+ std::vector<int> formats; |
+ JavaIntArrayToIntVector(env, j_color_format_array.obj(), &formats); |
+ color_formats = std::set<int>(formats.begin(), formats.end()); |
+ } |
+ |
+ return color_formats; |
+} |
+ |
+// static |
bool MediaCodecBridge::CanDecode(const std::string& codec, bool is_secure) { |
if (!IsAvailable()) |
return false; |