summaryrefslogtreecommitdiff
path: root/camera/CameraDeviceSession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'camera/CameraDeviceSession.cpp')
-rw-r--r--camera/CameraDeviceSession.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/camera/CameraDeviceSession.cpp b/camera/CameraDeviceSession.cpp
index 70c2aacb..41a22e36 100644
--- a/camera/CameraDeviceSession.cpp
+++ b/camera/CameraDeviceSession.cpp
@@ -105,7 +105,8 @@ void notifyError(ICameraDeviceCallback* cb,
void notifyShutter(ICameraDeviceCallback* cb,
const int32_t frameNumber,
- const int64_t timestamp) {
+ const int64_t shutterTimestamp,
+ const int64_t readoutTimestamp) {
using aidl::android::hardware::camera::device::NotifyMsg;
using aidl::android::hardware::camera::device::ShutterMsg;
using NotifyMsgTag = NotifyMsg::Tag;
@@ -115,7 +116,8 @@ void notifyShutter(ICameraDeviceCallback* cb,
{
ShutterMsg shutterMsg;
shutterMsg.frameNumber = frameNumber;
- shutterMsg.timestamp = timestamp;
+ shutterMsg.timestamp = shutterTimestamp;
+ shutterMsg.readoutTimestamp = readoutTimestamp;
msg.set<NotifyMsgTag::shutter>(shutterMsg);
}
@@ -529,11 +531,9 @@ struct timespec CameraDeviceSession::captureOneFrame(struct timespec nextFrameT,
}
const int32_t frameNumber = req.frameNumber;
- const int64_t shutterTimestampNs = timespec2nanos(nextFrameT);
-
- notifyShutter(&*mCb, frameNumber, shutterTimestampNs);
- auto [frameDurationNs, metadata, outputBuffers, delayedOutputBuffers] =
+ auto [frameDurationNs, exposureDurationNs, metadata,
+ outputBuffers, delayedOutputBuffers] =
mHwCamera.processCaptureRequest(std::move(req.metadataUpdate),
{req.buffers.begin(), req.buffers.end()});
@@ -547,6 +547,8 @@ struct timespec CameraDeviceSession::captureOneFrame(struct timespec nextFrameT,
}
}
+ const int64_t shutterTimestampNs = timespec2nanos(nextFrameT);
+ notifyShutter(&*mCb, frameNumber, shutterTimestampNs, shutterTimestampNs + exposureDurationNs);
metadataSetShutterTimestamp(&metadata, shutterTimestampNs);
consumeCaptureResult(makeCaptureResult(frameNumber,
std::move(metadata), std::move(outputBuffers)));