Index: media/video/capture/android/video_capture_device_android.cc |
diff --git a/media/video/capture/android/video_capture_device_android.cc b/media/video/capture/android/video_capture_device_android.cc |
index 4cd8e4edaa20a2371e1103e831c6cf01a6033844..d837b24c9084915b3424dbc6a3c83c1805ae17a1 100644 |
--- a/media/video/capture/android/video_capture_device_android.cc |
+++ b/media/video/capture/android/video_capture_device_android.cc |
@@ -7,10 +7,10 @@ |
#include <string> |
#include "base/android/jni_android.h" |
+#include "base/android/jni_string.h" |
#include "base/android/scoped_java_ref.h" |
#include "base/string_number_conversions.h" |
#include "base/stringprintf.h" |
-#include "jni/Camera_jni.h" |
#include "jni/VideoCapture_jni.h" |
#include "media/base/video_util.h" |
@@ -42,53 +42,28 @@ void VideoCaptureDevice::GetDeviceNames(Names* device_names) { |
JNIEnv* env = AttachCurrentThread(); |
- int num_cameras = JNI_Camera::Java_Camera_getNumberOfCameras(env); |
+ int num_cameras = Java_ChromiumCameraInfo_getNumberOfCameras(env); |
DVLOG(1) << "VideoCaptureDevice::GetDeviceNames: num_cameras=" << num_cameras; |
if (num_cameras <= 0) |
return; |
- // TODO(wjia): switch to using same approach as Camera when |
- // jar_file_jni_generator.gypi supports system inner classes. |
- std::string camera_info_string("android/hardware/Camera$CameraInfo"); |
- |
- ScopedJavaLocalRef<jclass> camera_info_class( |
- GetClass(env, camera_info_string.c_str())); |
- jmethodID constructor = MethodID::Get<MethodID::TYPE_INSTANCE>( |
- env, camera_info_class.obj(), "<init>", "()V"); |
- |
- ScopedJavaLocalRef<jobject> object_camera_info( |
- env, env->NewObject(camera_info_class.obj(), constructor)); |
- |
- jfieldID field_facing = GetFieldID(env, camera_info_class, "facing", "I"); |
- jfieldID field_facing_front = GetStaticFieldID( |
- env, camera_info_class, "CAMERA_FACING_FRONT", "I"); |
- |
for (int camera_id = num_cameras - 1; camera_id >= 0; --camera_id) { |
- JNI_Camera::Java_Camera_getCameraInfo( |
- env, camera_id, object_camera_info.obj()); |
+ ScopedJavaLocalRef<jobject> ci = |
+ Java_ChromiumCameraInfo_getAt(env, camera_id); |
Name name; |
- name.unique_id = StringPrintf("%d", camera_id); |
- std::string facing_string; |
- if (env->GetIntField(object_camera_info.obj(), field_facing) == |
- env->GetStaticIntField(camera_info_class.obj(), field_facing_front)) { |
- facing_string = "front"; |
- } else { |
- facing_string = "back"; |
- } |
- name.device_name = StringPrintf( |
- "camera %d, facing %s", camera_id, facing_string.c_str()); |
+ name.unique_id = StringPrintf( |
+ "%d", Java_ChromiumCameraInfo_getId(env, ci.obj())); |
+ name.device_name = base::android::ConvertJavaStringToUTF8( |
+ Java_ChromiumCameraInfo_getDeviceName(env, ci.obj())); |
device_names->push_back(name); |
- jfieldID field_orientation = GetFieldID( |
- env, camera_info_class, "orientation", "I"); |
- jint orientation = env->GetIntField(object_camera_info.obj(), |
- field_orientation); |
+ |
DVLOG(1) << "VideoCaptureDevice::GetDeviceNames: camera device_name=" |
<< name.device_name |
<< ", unique_id=" |
<< name.unique_id |
<< ", orientation " |
- << orientation; |
+ << Java_ChromiumCameraInfo_getOrientation(env, ci.obj()); |
} |
} |
@@ -108,7 +83,7 @@ VideoCaptureDevice* VideoCaptureDeviceAndroid::Create(const Name& device_name) { |
// static |
bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { |
- return RegisterNativesImpl(env) && JNI_Camera::RegisterNativesImpl(env); |
+ return RegisterNativesImpl(env); |
} |
VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid(const Name& device_name) |