Reland of Android: Add FramerateRange class (patchset #1 id:1 of https://codereview.webrtc.org/2024573002/ )
Reason for revert: Updated signature to work with other JNI versions. We would need to compile it differently in order to catch failures like this in WebRTC in the future. Original issue's description: > Revert of Android: Add FramerateRange class (patchset #2 id:60001 of https://codereview.webrtc.org/2010763003/ ) > > Reason for revert: > Breaks downstream Android tests: > java.lang.NoSuchFieldError: no field with name='framerate' signature='org/webrtc/CameraEnumerationAndroid$CaptureFormat$FramerateRange' in class Lorg/webrtc/CameraEnumerationAndroid$CaptureFormat; > > We should have a similar test in WebRTC so we can catch such errors pre-commit. > > Original issue's description: > > 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 > > > > Committed: https://crrev.com/94cb67d6df1a78e7fa25e469f719c1a8809dc583 > > Cr-Commit-Position: refs/heads/master@{#12942} > > TBR=sakal@webrtc.org,magjed@webrtc.org > NOTRY=True > BUG=webrtc:5519 > > Committed: https://crrev.com/bd5621f065fd25e0a77307f10dc9ddaf76e7945f > Cr-Commit-Position: refs/heads/master@{#12956} TBR=sakal@webrtc.org,kjellander@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:5519 Review-Url: https://codereview.webrtc.org/2019333002 Cr-Commit-Position: refs/heads/master@{#12957}
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