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

Unified Diff: webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java

Issue 2019333002: Reland of Android: Add FramerateRange class (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Add L; to java class signature Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java
diff --git a/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java b/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java
index 6515c07f3c4a7d38831930d8e49c1e4aa1559847..d9793cf591f3103933624cd88e117f1fea9ca4c0 100644
--- a/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java
+++ b/webrtc/api/java/android/org/webrtc/VideoCapturerAndroid.java
@@ -401,19 +401,24 @@ public class VideoCapturerAndroid implements
// Find closest supported format for |width| x |height| @ |framerate|.
final android.hardware.Camera.Parameters parameters = camera.getParameters();
- for (int[] fpsRange : parameters.getSupportedPreviewFpsRange()) {
- Logging.d(TAG, "Available fps range: " +
- fpsRange[android.hardware.Camera.Parameters.PREVIEW_FPS_MIN_INDEX] + ":" +
- fpsRange[android.hardware.Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
+ final List<CaptureFormat.FramerateRange> supportedFramerates =
+ CameraEnumerator.convertFramerates(parameters.getSupportedPreviewFpsRange());
+ Logging.d(TAG, "Available fps ranges: " + supportedFramerates);
+
+ final CaptureFormat.FramerateRange bestFpsRange;
+ if (supportedFramerates.isEmpty()) {
+ Logging.w(TAG, "No supported preview fps range");
+ bestFpsRange = new CaptureFormat.FramerateRange(0, 0);
+ } else {
+ bestFpsRange = CameraEnumerationAndroid.getClosestSupportedFramerateRange(
+ supportedFramerates, framerate);
}
- final int[] range = CameraEnumerationAndroid.getFramerateRange(parameters, framerate * 1000);
+
final android.hardware.Camera.Size previewSize =
CameraEnumerationAndroid.getClosestSupportedSize(
parameters.getSupportedPreviewSizes(), width, height);
final CaptureFormat captureFormat = new CaptureFormat(
- previewSize.width, previewSize.height,
- range[android.hardware.Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
- range[android.hardware.Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
+ previewSize.width, previewSize.height, bestFpsRange);
// Check if we are already using this capture format, then we don't need to do anything.
if (captureFormat.isSameFormat(this.captureFormat)) {
@@ -428,8 +433,8 @@ public class VideoCapturerAndroid implements
}
// Note: setRecordingHint(true) actually decrease frame rate on N5.
// parameters.setRecordingHint(true);
- if (captureFormat.maxFramerate > 0) {
- parameters.setPreviewFpsRange(captureFormat.minFramerate, captureFormat.maxFramerate);
+ if (captureFormat.framerate.max > 0) {
+ parameters.setPreviewFpsRange(captureFormat.framerate.min, captureFormat.framerate.max);
}
parameters.setPreviewSize(captureFormat.width, captureFormat.height);
« no previous file with comments | « webrtc/api/java/android/org/webrtc/CameraEnumerator.java ('k') | webrtc/api/java/jni/androidvideocapturer_jni.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698