Android: Add FramerateRange class
The Camera1 and Camera2 API use different framerate range types. Camera1 uses int[2] and Camera2 uses Range<Integer>. Range<Integer> is unfortunately only available on Lollipop and later, so this CL adds a similar FramerateRange class in CaptureFormat. The purpose with this CL is to have a common framerate range type that can be reused from both Camera1 and Camera2 in helper functions such as CameraEnumerationAndroid.getClosestSupportedFramerateRange(). BUG=webrtc:5519 R=sakal@webrtc.org Review URL: https://codereview.webrtc.org/2010763003 . Cr-Commit-Position: refs/heads/master@{#12942}
This commit is contained in:
@ -77,7 +77,7 @@ public class CaptureQualityController implements SeekBar.OnSeekBarChangeListener
|
||||
long maxCaptureBandwidth = java.lang.Long.MIN_VALUE;
|
||||
for (CaptureFormat format : formats) {
|
||||
maxCaptureBandwidth = Math.max(maxCaptureBandwidth,
|
||||
(long) format.width * format.height * format.maxFramerate);
|
||||
(long) format.width * format.height * format.framerate.max);
|
||||
}
|
||||
|
||||
// Fraction between 0 and 1.
|
||||
@ -107,7 +107,7 @@ public class CaptureQualityController implements SeekBar.OnSeekBarChangeListener
|
||||
|
||||
// Return the highest frame rate possible based on bandwidth and format.
|
||||
private int calculateFramerate(double bandwidth, CaptureFormat format) {
|
||||
return (int) Math.round(Math.min(format.maxFramerate,
|
||||
return (int) Math.round(Math.min(format.framerate.max,
|
||||
(int) Math.round(bandwidth / (format.width * format.height))) / 1000.0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user