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 e507936f4f8e7c9bfce91189cb72e3b060c3788c..9e789ede6f145a7def72aa036e565ffcbb085f38 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() { |
// MediaCodec is only available on JB and greater. |
@@ -211,6 +219,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. |