Camera3: Add ZSL stream support
Bug: 8563838
Change-Id: I2feda142ff5172aba17ade5c8d502f9bb5d5b766
diff --git a/services/camera/libcameraservice/camera3/Camera3Stream.h b/services/camera/libcameraservice/camera3/Camera3Stream.h
index 46a3872..d992cfe 100644
--- a/services/camera/libcameraservice/camera3/Camera3Stream.h
+++ b/services/camera/libcameraservice/camera3/Camera3Stream.h
@@ -21,9 +21,13 @@
#include <utils/RefBase.h>
#include <utils/String8.h>
#include <utils/String16.h>
+#include <utils/List.h>
#include "hardware/camera3.h"
+#include "Camera3StreamBufferListener.h"
+#include "Camera3StreamInterface.h"
+
namespace android {
namespace camera3 {
@@ -81,7 +85,8 @@
*/
class Camera3Stream :
protected camera3_stream,
- public LightRefBase<Camera3Stream> {
+ public virtual Camera3StreamInterface,
+ public virtual RefBase {
public:
virtual ~Camera3Stream();
@@ -205,6 +210,11 @@
*/
virtual void dump(int fd, const Vector<String16> &args) const = 0;
+ void addBufferListener(
+ wp<Camera3StreamBufferListener> listener);
+ void removeBufferListener(
+ const sp<Camera3StreamBufferListener>& listener);
+
protected:
const int mId;
const String8 mName;
@@ -261,6 +271,10 @@
// Gets all buffers from endpoint and registers them with the HAL.
status_t registerBuffersLocked(camera3_device *hal3Device);
+ void fireBufferListenersLocked(const camera3_stream_buffer& buffer,
+ bool acquired, bool output);
+ List<wp<Camera3StreamBufferListener> > mBufferListenerList;
+
}; // class Camera3Stream
}; // namespace camera3