QCamera2: HAL3: correct timestamp calculation in HFR mode
When the phone powers up for several days,
the timestamp (in ns, nano sec) of frames will exceed the
precision of float data type.
It will lead to incorrect timestamp calculation in
HFR batch mode. Use double instead
Ack-by: Gaoxiang Chen
BUG=24842044
Change-Id: I63598e56178b980fa817c1c77f77f0e6a005767b
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index 61ce2b2..a881f04 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2379,9 +2379,9 @@
if (last_frame_capture_time) {
//Infer timestamp
first_frame_capture_time = last_frame_capture_time -
- (((loopCount - 1) * NSEC_PER_SEC) / mHFRVideoFps);
+ (((loopCount - 1) * NSEC_PER_SEC) / (double) mHFRVideoFps);
capture_time =
- first_frame_capture_time + (i * NSEC_PER_SEC / mHFRVideoFps);
+ first_frame_capture_time + (i * NSEC_PER_SEC / (double) mHFRVideoFps);
ADD_SET_PARAM_ENTRY_TO_BATCH(metadata,
CAM_INTF_META_SENSOR_TIMESTAMP, capture_time);
CDBG_HIGH("%s: batch capture_time: %lld, capture_time: %lld",