Index: webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java |
diff --git a/webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java b/webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java |
index 48ee1a373170fc945b403bd8d07b0918a1c356ce..c5cdcf7d56efd62a5d2ffe5d43dc7e24620d488b 100644 |
--- a/webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java |
+++ b/webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java |
@@ -13,14 +13,41 @@ package org.webrtc; |
import static java.lang.Math.abs; |
import android.graphics.ImageFormat; |
+import java.util.ArrayList; |
+import java.util.Arrays; |
import java.util.Collections; |
import java.util.Comparator; |
import java.util.List; |
+import org.webrtc.Metrics.Histogram; |
@SuppressWarnings("deprecation") |
public class CameraEnumerationAndroid { |
private final static String TAG = "CameraEnumerationAndroid"; |
+ static final ArrayList<Size> COMMON_RESOLUTIONS = new ArrayList<Size>(Arrays.asList( |
+ // 0, Unknown resolution |
+ new Size(160, 120), // 1, QQVGA |
+ new Size(240, 160), // 2, HQVGA |
+ new Size(320, 240), // 3, QVGA |
+ new Size(400, 240), // 4, WQVGA |
+ new Size(480, 320), // 5, HVGA |
+ new Size(640, 360), // 6, nHD |
+ new Size(640, 480), // 7, VGA |
+ new Size(768, 480), // 8, WVGA |
+ new Size(854, 480), // 9, FWVGA |
+ new Size(800, 600), // 10, SVGA |
+ new Size(960, 540), // 11, qHD |
+ new Size(960, 640), // 12, DVGA |
+ new Size(1024, 576), // 13, WSVGA |
+ new Size(1024, 600), // 14, WVSGA |
+ new Size(1280, 720), // 15, HD |
+ new Size(1280, 1024), // 16, SXGA |
+ new Size(1920, 1080), // 17, Full HD |
+ new Size(1920, 1440), // 18, Full HD 4:3 |
+ new Size(2560, 1440), // 19, QHD |
+ new Size(3840, 2160) // 20, UHD |
+ )); |
+ |
public static class CaptureFormat { |
// Class to represent a framerate range. The framerate varies because of lightning conditions. |
// The values are multiplied by 1000, so 1000 represents one frame per second. |
@@ -169,4 +196,12 @@ public class CameraEnumerationAndroid { |
} |
}); |
} |
+ |
+ // Helper method for camera classes. |
+ static void reportCameraResolution(Histogram histogram, Size resolution) { |
+ int index = COMMON_RESOLUTIONS.indexOf(resolution); |
+ // 0 is reserved for unknown resolution, so add 1. |
+ // indexOf returns -1 for unknown resolutions so it becomes 0 automatically. |
+ histogram.addSample(index + 1); |
+ } |
} |