Camera2: Add support for preview callbacks
- Move camera overall state enum to be part of parameters
- No longer use ICameraLock to guard access to overall state enum
- Add callback flag management
- Add callback stream and management
Bug: 6243944
Change-Id: Ideb3dc523a23c05e440e429ebf838b1900a96573
diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp
index bbdee39..583701d 100644
--- a/services/camera/libcameraservice/Camera2Device.cpp
+++ b/services/camera/libcameraservice/Camera2Device.cpp
@@ -1028,8 +1028,9 @@
buffer_handle_t* buffer) {
StreamAdapter *stream =
const_cast<StreamAdapter*>(static_cast<const StreamAdapter*>(w));
- ALOGVV("Stream %d enqueue: Buffer %p captured at %lld ns",
- stream->mId, (void*)(*buffer), timestamp);
+ stream->mFrameCount++;
+ ALOGVV("Stream %d enqueue: Frame %d (%p) captured at %lld ns",
+ stream->mId, mFrameCount, (void*)(*buffer), timestamp);
int state = stream->mState;
if (state != ACTIVE) {
ALOGE("%s: Called when in bad state: %d", __FUNCTION__, state);
@@ -1037,6 +1038,7 @@
}
ANativeWindow *a = toANW(w);
status_t err;
+
err = native_window_set_buffers_timestamp(a, timestamp);
if (err != OK) {
ALOGE("%s: Error setting timestamp on native window: %s (%d)",
@@ -1052,7 +1054,6 @@
}
stream->mActiveBuffers--;
- stream->mFrameCount++;
stream->mLastTimestamp = timestamp;
return OK;
}