Camera3: add deferred surface support
Initial native implementation and aidl changes for surfaceless support.
Bug: 28323863
Change-Id: Id6634c3ef2ecc84422a88f63de0a19a0cb496e96
diff --git a/include/camera/camera2/OutputConfiguration.h b/include/camera/camera2/OutputConfiguration.h
index 72a3753..cf8f3c6 100644
--- a/include/camera/camera2/OutputConfiguration.h
+++ b/include/camera/camera2/OutputConfiguration.h
@@ -33,10 +33,17 @@
static const int INVALID_ROTATION;
static const int INVALID_SET_ID;
+ enum SurfaceType{
+ SURFACE_TYPE_UNKNOWN = -1,
+ SURFACE_TYPE_SURFACE_VIEW = 0,
+ SURFACE_TYPE_SURFACE_TEXTURE = 1
+ };
sp<IGraphicBufferProducer> getGraphicBufferProducer() const;
int getRotation() const;
int getSurfaceSetID() const;
-
+ int getSurfaceType() const;
+ int getWidth() const;
+ int getHeight() const;
/**
* Keep impl up-to-date with OutputConfiguration.java in frameworks/base
*/
@@ -60,7 +67,10 @@
bool operator == (const OutputConfiguration& other) const {
return (mGbp == other.mGbp &&
mRotation == other.mRotation &&
- mSurfaceSetID == other.mSurfaceSetID);
+ mSurfaceSetID == other.mSurfaceSetID &&
+ mSurfaceType == other.mSurfaceType &&
+ mWidth == other.mWidth &&
+ mHeight == other.mHeight);
}
bool operator != (const OutputConfiguration& other) const {
return !(*this == other);
@@ -71,6 +81,16 @@
if (mSurfaceSetID != other.mSurfaceSetID) {
return mSurfaceSetID < other.mSurfaceSetID;
}
+ if (mSurfaceType != other.mSurfaceType) {
+ return mSurfaceType < other.mSurfaceType;
+ }
+ if (mWidth != other.mWidth) {
+ return mWidth < other.mWidth;
+ }
+ if (mHeight != other.mHeight) {
+ return mHeight < other.mHeight;
+ }
+
return mRotation < other.mRotation;
}
bool operator > (const OutputConfiguration& other) const {
@@ -81,6 +101,9 @@
sp<IGraphicBufferProducer> mGbp;
int mRotation;
int mSurfaceSetID;
+ int mSurfaceType;
+ int mWidth;
+ int mHeight;
// helper function
static String16 readMaybeEmptyString16(const Parcel* parcel);
};