Index: media/base/android/media_codec_util.cc |
diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_codec_util.cc |
index 568131ee9f2154632ce80d39df58e64fbe973390..467449f1262ead3a0438571bf52e55f9bb16a7db 100644 |
--- a/media/base/android/media_codec_util.cc |
+++ b/media/base/android/media_codec_util.cc |
@@ -87,6 +87,14 @@ static bool IsDecoderSupportedByDevice(const std::string& android_mime_type) { |
return Java_MediaCodecUtil_isDecoderSupportedForDevice(env, j_mime); |
} |
+static bool IsEncoderSupportedByDevice(const std::string& android_mime_type) { |
+ DCHECK(MediaCodecUtil::IsMediaCodecAvailable()); |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jstring> j_mime = |
+ ConvertUTF8ToJavaString(env, android_mime_type); |
+ return Java_MediaCodecUtil_isEncoderSupportedByDevice(env, j_mime); |
+} |
+ |
// static |
bool MediaCodecUtil::IsMediaCodecAvailable() { |
// Blacklist some devices on Jellybean as MediaCodec is buggy. |
@@ -212,6 +220,11 @@ bool MediaCodecUtil::IsVp9DecoderAvailable() { |
} |
// static |
+bool MediaCodecUtil::IsH264EncoderAvailable() { |
+ return IsMediaCodecAvailable() && IsEncoderSupportedByDevice(kAvcMimeType); |
+} |
+ |
+// static |
bool MediaCodecUtil::IsSurfaceViewOutputSupported() { |
// Disable SurfaceView output for the Samsung Galaxy S3; it does not work |
// well enough for even 360p24 H264 playback. http://crbug.com/602870. |