Camera: use rational/double for external camera framerate
For better precision.
Ex: minFrameDuration of 30fps 333333334->333333333
Bug: 72261912
Change-Id: I830d694d34eb01426e46279c4c986d8879b9d847
diff --git a/camera/device/3.4/default/ExternalCameraUtils.cpp b/camera/device/3.4/default/ExternalCameraUtils.cpp
index 80f296c..d28a4dd 100644
--- a/camera/device/3.4/default/ExternalCameraUtils.cpp
+++ b/camera/device/3.4/default/ExternalCameraUtils.cpp
@@ -147,6 +147,10 @@
return (std::abs(ar1 - ar2) < kAspectRatioMatchThres);
}
+double SupportedV4L2Format::FrameRate::getDouble() const {
+ return durationDenominator / static_cast<double>(durationNumerator);
+}
+
} // namespace implementation
} // namespace V3_4
} // namespace device
@@ -247,7 +251,7 @@
limit.size = {
row->UnsignedAttribute("width", /*Default*/0),
row->UnsignedAttribute("height", /*Default*/0)};
- limit.fpsUpperBound = row->FloatAttribute("fpsBound", /*Default*/1000.0);
+ limit.fpsUpperBound = row->DoubleAttribute("fpsBound", /*Default*/1000.0);
if (limit.size.width <= prevLimit.size.width ||
limit.size.height <= prevLimit.size.height ||
limit.fpsUpperBound >= prevLimit.fpsUpperBound) {