| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/base/android/media_codec_bridge.h" | 5 #include "media/base/android/media_codec_bridge.h" |
| 6 | 6 |
| 7 #include <jni.h> | 7 #include <jni.h> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/android/build_info.h" | 10 #include "base/android/build_info.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 } | 123 } |
| 124 } | 124 } |
| 125 | 125 |
| 126 // static | 126 // static |
| 127 bool MediaCodecBridge::CanDecode(const std::string& codec, bool is_secure) { | 127 bool MediaCodecBridge::CanDecode(const std::string& codec, bool is_secure) { |
| 128 JNIEnv* env = AttachCurrentThread(); | 128 JNIEnv* env = AttachCurrentThread(); |
| 129 std::string mime = CodecTypeToAndroidMimeType(codec); | 129 std::string mime = CodecTypeToAndroidMimeType(codec); |
| 130 if (mime.empty()) | 130 if (mime.empty()) |
| 131 return false; | 131 return false; |
| 132 ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); | 132 ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); |
| 133 return !Java_MediaCodecBridge_create(env, j_mime.obj(), is_secure).is_null(); | 133 ScopedJavaLocalRef<jobject> j_media_codec_bridge = |
| 134 Java_MediaCodecBridge_create(env, j_mime.obj(), is_secure); |
| 135 if (!j_media_codec_bridge.is_null()) { |
| 136 Java_MediaCodecBridge_release(env, j_media_codec_bridge.obj()); |
| 137 return true; |
| 138 } |
| 139 return false; |
| 134 } | 140 } |
| 135 | 141 |
| 136 MediaCodecBridge::MediaCodecBridge(const std::string& mime, bool is_secure) { | 142 MediaCodecBridge::MediaCodecBridge(const std::string& mime, bool is_secure) { |
| 137 JNIEnv* env = AttachCurrentThread(); | 143 JNIEnv* env = AttachCurrentThread(); |
| 138 CHECK(env); | 144 CHECK(env); |
| 139 DCHECK(!mime.empty()); | 145 DCHECK(!mime.empty()); |
| 140 ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); | 146 ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); |
| 141 j_media_codec_.Reset( | 147 j_media_codec_.Reset( |
| 142 Java_MediaCodecBridge_create(env, j_mime.obj(), is_secure)); | 148 Java_MediaCodecBridge_create(env, j_mime.obj(), is_secure)); |
| 143 } | 149 } |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 bool is_secure) { | 491 bool is_secure) { |
| 486 const std::string mime = VideoCodecToAndroidMimeType(codec); | 492 const std::string mime = VideoCodecToAndroidMimeType(codec); |
| 487 return mime.empty() ? NULL : new VideoCodecBridge(mime, is_secure); | 493 return mime.empty() ? NULL : new VideoCodecBridge(mime, is_secure); |
| 488 } | 494 } |
| 489 | 495 |
| 490 bool MediaCodecBridge::RegisterMediaCodecBridge(JNIEnv* env) { | 496 bool MediaCodecBridge::RegisterMediaCodecBridge(JNIEnv* env) { |
| 491 return RegisterNativesImpl(env); | 497 return RegisterNativesImpl(env); |
| 492 } | 498 } |
| 493 | 499 |
| 494 } // namespace media | 500 } // namespace media |
| OLD | NEW |