Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(992)

Side by Side Diff: talk/app/webrtc/java/android/org/webrtc/CameraEnumerationAndroid.java

Issue 1338033003: Log to webrtc logging stream from java code. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2015 Google Inc. 3 * Copyright 2015 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 12 matching lines...) Expand all
23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28 package org.webrtc; 28 package org.webrtc;
29 29
30 import static java.lang.Math.abs; 30 import static java.lang.Math.abs;
31 import static java.lang.Math.ceil; 31 import static java.lang.Math.ceil;
32 import android.hardware.Camera; 32 import android.hardware.Camera;
33 import android.util.Log;
34 import android.graphics.ImageFormat; 33 import android.graphics.ImageFormat;
35 34
36 import org.json.JSONArray; 35 import org.json.JSONArray;
37 import org.json.JSONException; 36 import org.json.JSONException;
38 import org.json.JSONObject; 37 import org.json.JSONObject;
39 38
39 import org.webrtc.Logging;
40
40 import java.util.Collections; 41 import java.util.Collections;
41 import java.util.Comparator; 42 import java.util.Comparator;
42 import java.util.List; 43 import java.util.List;
43 44
44 @SuppressWarnings("deprecation") 45 @SuppressWarnings("deprecation")
45 public class CameraEnumerationAndroid { 46 public class CameraEnumerationAndroid {
46 private final static String TAG = "CameraEnumerationAndroid"; 47 private final static String TAG = "CameraEnumerationAndroid";
47 // Synchronized on |CameraEnumerationAndroid.this|. 48 // Synchronized on |CameraEnumerationAndroid.this|.
48 private static Enumerator enumerator = new CameraEnumerator(); 49 private static Enumerator enumerator = new CameraEnumerator();
49 50
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 return Camera.getNumberOfCameras(); 139 return Camera.getNumberOfCameras();
139 } 140 }
140 141
141 // Returns the name of the camera with camera index. Returns null if the 142 // Returns the name of the camera with camera index. Returns null if the
142 // camera can not be used. 143 // camera can not be used.
143 public static String getDeviceName(int index) { 144 public static String getDeviceName(int index) {
144 Camera.CameraInfo info = new Camera.CameraInfo(); 145 Camera.CameraInfo info = new Camera.CameraInfo();
145 try { 146 try {
146 Camera.getCameraInfo(index, info); 147 Camera.getCameraInfo(index, info);
147 } catch (Exception e) { 148 } catch (Exception e) {
148 Log.e(TAG, "getCameraInfo failed on index " + index,e); 149 Logging.e(TAG, "getCameraInfo failed on index " + index,e);
149 return null; 150 return null;
150 } 151 }
151 152
152 String facing = 153 String facing =
153 (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) ? "front" : "back "; 154 (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) ? "front" : "back ";
154 return "Camera " + index + ", Facing " + facing 155 return "Camera " + index + ", Facing " + facing
155 + ", Orientation " + info.orientation; 156 + ", Orientation " + info.orientation;
156 } 157 }
157 158
158 // Returns the name of the front facing camera. Returns null if the 159 // Returns the name of the front facing camera. Returns null if the
(...skipping 11 matching lines...) Expand all
170 public static String getSupportedFormatsAsJson(int id) throws JSONException { 171 public static String getSupportedFormatsAsJson(int id) throws JSONException {
171 List<CaptureFormat> formats = getSupportedFormats(id); 172 List<CaptureFormat> formats = getSupportedFormats(id);
172 JSONArray json_formats = new JSONArray(); 173 JSONArray json_formats = new JSONArray();
173 for (CaptureFormat format : formats) { 174 for (CaptureFormat format : formats) {
174 JSONObject json_format = new JSONObject(); 175 JSONObject json_format = new JSONObject();
175 json_format.put("width", format.width); 176 json_format.put("width", format.width);
176 json_format.put("height", format.height); 177 json_format.put("height", format.height);
177 json_format.put("framerate", (format.maxFramerate + 999) / 1000); 178 json_format.put("framerate", (format.maxFramerate + 999) / 1000);
178 json_formats.put(json_format); 179 json_formats.put(json_format);
179 } 180 }
180 Log.d(TAG, "Supported formats for camera " + id + ": " 181 Logging.d(TAG, "Supported formats for camera " + id + ": "
181 + json_formats.toString(2)); 182 + json_formats.toString(2));
182 return json_formats.toString(); 183 return json_formats.toString();
183 } 184 }
184 185
185 // Helper class for finding the closest supported format for the two functions below. 186 // Helper class for finding the closest supported format for the two functions below.
186 private static abstract class ClosestComparator<T> implements Comparator<T> { 187 private static abstract class ClosestComparator<T> implements Comparator<T> {
187 // Difference between supported and requested parameter. 188 // Difference between supported and requested parameter.
188 abstract int diff(T supportedParameter); 189 abstract int diff(T supportedParameter);
189 190
190 @Override 191 @Override
191 public int compare(T t1, T t2) { 192 public int compare(T t1, T t2) {
192 return diff(t1) - diff(t2); 193 return diff(t1) - diff(t2);
193 } 194 }
194 } 195 }
195 196
196 public static int[] getFramerateRange(Camera.Parameters parameters, final int framerate) { 197 public static int[] getFramerateRange(Camera.Parameters parameters, final int framerate) {
197 List<int[]> listFpsRange = parameters.getSupportedPreviewFpsRange(); 198 List<int[]> listFpsRange = parameters.getSupportedPreviewFpsRange();
198 if (listFpsRange.isEmpty()) { 199 if (listFpsRange.isEmpty()) {
199 Log.w(TAG, "No supported preview fps range"); 200 Logging.w(TAG, "No supported preview fps range");
200 return new int[]{0, 0}; 201 return new int[]{0, 0};
201 } 202 }
202 return Collections.min(listFpsRange, 203 return Collections.min(listFpsRange,
203 new ClosestComparator<int[]>() { 204 new ClosestComparator<int[]>() {
204 @Override int diff(int[] range) { 205 @Override int diff(int[] range) {
205 return abs(framerate - range[Camera.Parameters.PREVIEW_FPS_MIN_INDEX ]) 206 return abs(framerate - range[Camera.Parameters.PREVIEW_FPS_MIN_INDEX ])
206 + abs(framerate - range[Camera.Parameters.PREVIEW_FPS_MAX_INDEX] ); 207 + abs(framerate - range[Camera.Parameters.PREVIEW_FPS_MAX_INDEX] );
207 } 208 }
208 }); 209 });
209 } 210 }
(...skipping 10 matching lines...) Expand all
220 221
221 private static String getNameOfDevice(int facing) { 222 private static String getNameOfDevice(int facing) {
222 final Camera.CameraInfo info = new Camera.CameraInfo(); 223 final Camera.CameraInfo info = new Camera.CameraInfo();
223 for (int i = 0; i < Camera.getNumberOfCameras(); ++i) { 224 for (int i = 0; i < Camera.getNumberOfCameras(); ++i) {
224 try { 225 try {
225 Camera.getCameraInfo(i, info); 226 Camera.getCameraInfo(i, info);
226 if (info.facing == facing) { 227 if (info.facing == facing) {
227 return getDeviceName(i); 228 return getDeviceName(i);
228 } 229 }
229 } catch (Exception e) { 230 } catch (Exception e) {
230 Log.e(TAG, "getCameraInfo() failed on index " + i, e); 231 Logging.e(TAG, "getCameraInfo() failed on index " + i, e);
231 } 232 }
232 } 233 }
233 return null; 234 return null;
234 } 235 }
235 } 236 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698