Camera2: Move preview callback processing to its own thread.
To reduce delays for HAL callbacks, manage preview callbacks in their
own thread.
Bug: 6243944
Change-Id: I7bef56949ac889ffce4e031bf40291a771a46f3e
diff --git a/services/camera/libcameraservice/Camera2Client.h b/services/camera/libcameraservice/Camera2Client.h
index 2695108..b2fd636 100644
--- a/services/camera/libcameraservice/Camera2Client.h
+++ b/services/camera/libcameraservice/Camera2Client.h
@@ -22,6 +22,7 @@
#include "camera2/Parameters.h"
#include "camera2/FrameProcessor.h"
#include "camera2/CaptureProcessor.h"
+#include "camera2/CallbackProcessor.h"
#include <binder/MemoryBase.h>
#include <binder/MemoryHeapBase.h>
#include <gui/CpuConsumer.h>
@@ -178,27 +179,7 @@
/** Preview callback related members */
- int mCallbackStreamId;
- static const size_t kCallbackHeapCount = 6;
- sp<CpuConsumer> mCallbackConsumer;
- sp<ANativeWindow> mCallbackWindow;
- // Simple listener that forwards frame available notifications from
- // a CPU consumer to the callback notification
- class CallbackWaiter: public CpuConsumer::FrameAvailableListener {
- public:
- CallbackWaiter(Camera2Client *parent) : mParent(parent) {}
- void onFrameAvailable() { mParent->onCallbackAvailable(); }
- private:
- Camera2Client *mParent;
- };
- sp<CallbackWaiter> mCallbackWaiter;
- sp<camera2::Camera2Heap> mCallbackHeap;
- int mCallbackHeapId;
- size_t mCallbackHeapHead, mCallbackHeapFree;
- // Handle callback image buffers
- void onCallbackAvailable();
-
- status_t updateCallbackStream(const Parameters ¶ms);
+ sp<camera2::CallbackProcessor> mCallbackProcessor;
/* Still image capture related members */