| Index: webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java
|
| diff --git a/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java b/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java
|
| deleted file mode 100644
|
| index 72d7985120cad35d44bcfc8d9246f4b6bc647ede..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java
|
| +++ /dev/null
|
| @@ -1,133 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -package org.webrtc.videoengine;
|
| -
|
| -import java.util.List;
|
| -
|
| -import android.hardware.Camera.CameraInfo;
|
| -import android.hardware.Camera.Parameters;
|
| -import android.hardware.Camera.Size;
|
| -import android.hardware.Camera;
|
| -
|
| -import org.json.JSONArray;
|
| -import org.json.JSONException;
|
| -import org.json.JSONObject;
|
| -
|
| -import org.webrtc.Logging;
|
| -
|
| -public class VideoCaptureDeviceInfoAndroid {
|
| - private final static String TAG = "WEBRTC-JC";
|
| -
|
| - private static boolean isFrontFacing(CameraInfo info) {
|
| - return info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT;
|
| - }
|
| -
|
| - private static String deviceUniqueName(int index, CameraInfo info) {
|
| - return "Camera " + index +", Facing " +
|
| - (isFrontFacing(info) ? "front" : "back") +
|
| - ", Orientation "+ info.orientation;
|
| - }
|
| -
|
| - // Returns information about all cameras on the device as a serialized JSON
|
| - // array of dictionaries encoding information about a single device. Since
|
| - // this reflects static information about the hardware present, there is no
|
| - // need to call this function more than once in a single process. It is
|
| - // marked "private" as it is only called by native code.
|
| - private static String getDeviceInfo() {
|
| - try {
|
| - JSONArray devices = new JSONArray();
|
| - for (int i = 0; i < Camera.getNumberOfCameras(); ++i) {
|
| - CameraInfo info = new CameraInfo();
|
| - Camera.getCameraInfo(i, info);
|
| - String uniqueName = deviceUniqueName(i, info);
|
| - JSONObject cameraDict = new JSONObject();
|
| - devices.put(cameraDict);
|
| - List<Size> supportedSizes;
|
| - List<int[]> supportedFpsRanges;
|
| - Camera camera = null;
|
| - try {
|
| - camera = Camera.open(i);
|
| - Parameters parameters = camera.getParameters();
|
| - supportedSizes = parameters.getSupportedPreviewSizes();
|
| - supportedFpsRanges = parameters.getSupportedPreviewFpsRange();
|
| - Logging.d(TAG, uniqueName);
|
| - } catch (RuntimeException e) {
|
| - Logging.e(TAG, "Failed to open " + uniqueName + ", skipping", e);
|
| - continue;
|
| - } finally {
|
| - if (camera != null) {
|
| - camera.release();
|
| - }
|
| - }
|
| -
|
| - JSONArray sizes = new JSONArray();
|
| - for (Size supportedSize : supportedSizes) {
|
| - JSONObject size = new JSONObject();
|
| - size.put("width", supportedSize.width);
|
| - size.put("height", supportedSize.height);
|
| - sizes.put(size);
|
| - }
|
| -
|
| - boolean is30fpsRange = false;
|
| - boolean is15fpsRange = false;
|
| - // If there is constant 30 fps mode, but no 15 fps - add 15 fps
|
| - // mode to the list of supported ranges. Frame drop will be done
|
| - // in software.
|
| - for (int[] range : supportedFpsRanges) {
|
| - if (range[Parameters.PREVIEW_FPS_MIN_INDEX] == 30000 &&
|
| - range[Parameters.PREVIEW_FPS_MAX_INDEX] == 30000) {
|
| - is30fpsRange = true;
|
| - }
|
| - if (range[Parameters.PREVIEW_FPS_MIN_INDEX] == 15000 &&
|
| - range[Parameters.PREVIEW_FPS_MAX_INDEX] == 15000) {
|
| - is15fpsRange = true;
|
| - }
|
| - }
|
| - if (is30fpsRange && !is15fpsRange) {
|
| - Logging.d(TAG, "Adding 15 fps support");
|
| - int[] newRange = new int [Parameters.PREVIEW_FPS_MAX_INDEX + 1];
|
| - newRange[Parameters.PREVIEW_FPS_MIN_INDEX] = 15000;
|
| - newRange[Parameters.PREVIEW_FPS_MAX_INDEX] = 15000;
|
| - for (int j = 0; j < supportedFpsRanges.size(); j++ ) {
|
| - int[] range = supportedFpsRanges.get(j);
|
| - if (range[Parameters.PREVIEW_FPS_MAX_INDEX] >
|
| - newRange[Parameters.PREVIEW_FPS_MAX_INDEX]) {
|
| - supportedFpsRanges.add(j, newRange);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| -
|
| - JSONArray mfpsRanges = new JSONArray();
|
| - for (int[] range : supportedFpsRanges) {
|
| - JSONObject mfpsRange = new JSONObject();
|
| - // Android SDK deals in integral "milliframes per second"
|
| - // (i.e. fps*1000, instead of floating-point frames-per-second) so we
|
| - // preserve that through the Java->C++->Java round-trip.
|
| - mfpsRange.put("min_mfps", range[Parameters.PREVIEW_FPS_MIN_INDEX]);
|
| - mfpsRange.put("max_mfps", range[Parameters.PREVIEW_FPS_MAX_INDEX]);
|
| - mfpsRanges.put(mfpsRange);
|
| - }
|
| -
|
| - cameraDict.put("name", uniqueName);
|
| - cameraDict.put("front_facing", isFrontFacing(info))
|
| - .put("orientation", info.orientation)
|
| - .put("sizes", sizes)
|
| - .put("mfpsRanges", mfpsRanges);
|
| - }
|
| - String ret = devices.toString(2);
|
| - Logging.d(TAG, ret);
|
| - return ret;
|
| - } catch (JSONException e) {
|
| - throw new RuntimeException(e);
|
| - }
|
| - }
|
| -}
|
|
|