Configure streams.

Set up the camera HAL according to the request streams.
Upgrades this flow from the 3.0 to 3.4 version, where
streams are not registered with buffers, and have a few
additional fields.

BUG: http://b/29921457, http://b/29221641
Change-Id: I36f67da374e6919caad6f202f31b72b0de2bb3bf
diff --git a/modules/camera/3_4/Stream.cpp b/modules/camera/3_4/Stream.cpp
index fdd08d6..0d021ef 100644
--- a/modules/camera/3_4/Stream.cpp
+++ b/modules/camera/3_4/Stream.cpp
@@ -42,17 +42,14 @@
     mHeight(s->height),
     mFormat(s->format),
     mUsage(0),
-    mMaxBuffers(0),
-    mRegistered(false),
-    mBuffers(0),
-    mNumBuffers(0)
+    mRotation(s->rotation),
+    mDataSpace(s->data_space),
+    mMaxBuffers(0)
 {
 }
 
 Stream::~Stream()
 {
-    android::Mutex::Autolock al(mLock);
-    unregisterBuffers_L();
 }
 
 void Stream::setUsage(uint32_t usage)
@@ -61,7 +58,6 @@
     if (usage != mUsage) {
         mUsage = usage;
         mStream->usage = usage;
-        unregisterBuffers_L();
     }
 }
 
@@ -71,22 +67,25 @@
     if (max_buffers != mMaxBuffers) {
         mMaxBuffers = max_buffers;
         mStream->max_buffers = max_buffers;
-        unregisterBuffers_L();
     }
 }
 
-int Stream::getType()
+void Stream::setDataSpace(android_dataspace_t data_space)
 {
-    return mType;
+    android::Mutex::Autolock al(mLock);
+    if (data_space != mDataSpace) {
+        mDataSpace = data_space;
+        mStream->data_space = data_space;
+    }
 }
 
-bool Stream::isInputType()
+bool Stream::isInputType() const
 {
     return mType == CAMERA3_STREAM_INPUT ||
         mType == CAMERA3_STREAM_BIDIRECTIONAL;
 }
 
-bool Stream::isOutputType()
+bool Stream::isOutputType() const
 {
     return mType == CAMERA3_STREAM_OUTPUT ||
         mType == CAMERA3_STREAM_BIDIRECTIONAL;
@@ -145,11 +144,6 @@
     return "Invalid stream format!";
 }
 
-bool Stream::isRegistered()
-{
-    return mRegistered;
-}
-
 bool Stream::isValidReuseStream(int id, camera3_stream_t *s)
 {
     if (id != mId) {
@@ -187,40 +181,6 @@
     return true;
 }
 
-int Stream::registerBuffers(const camera3_stream_buffer_set_t *buf_set)
-{
-    ATRACE_CALL();
-    android::Mutex::Autolock al(mLock);
-
-    if (buf_set->stream != mStream) {
-        ALOGE("%s:%d: Buffer set for invalid stream. Got %p expect %p",
-                __func__, mId, buf_set->stream, mStream);
-        return -EINVAL;
-    }
-
-    mNumBuffers = buf_set->num_buffers;
-    mBuffers = new buffer_handle_t*[mNumBuffers];
-
-    for (unsigned int i = 0; i < mNumBuffers; i++) {
-        ALOGV("%s:%d: Registering buffer %p", __func__, mId,
-                buf_set->buffers[i]);
-        mBuffers[i] = buf_set->buffers[i];
-        // TODO: register buffers with hw, handle error cases
-    }
-    mRegistered = true;
-
-    return 0;
-}
-
-// This must only be called with mLock held
-void Stream::unregisterBuffers_L()
-{
-    mRegistered = false;
-    mNumBuffers = 0;
-    delete [] mBuffers;
-    // TODO: unregister buffers from hw
-}
-
 void Stream::dump(int fd)
 {
     android::Mutex::Autolock al(mLock);
@@ -231,13 +191,9 @@
     dprintf(fd, "Stream Format: %s (%d)", formatToString(mFormat), mFormat);
     // ToDo: prettyprint usage mask flags
     dprintf(fd, "Gralloc Usage Mask: %#" PRIx32 "\n", mUsage);
+    dprintf(fd, "Stream Rotation: %d\n", mRotation);
+    dprintf(fd, "Stream Dataspace: 0x%x\n", mDataSpace);
     dprintf(fd, "Max Buffer Count: %" PRIu32 "\n", mMaxBuffers);
-    dprintf(fd, "Buffers Registered: %s\n", mRegistered ? "true" : "false");
-    dprintf(fd, "Number of Buffers: %" PRIu32 "\n", mNumBuffers);
-    for (uint32_t i = 0; i < mNumBuffers; i++) {
-        dprintf(fd, "Buffer %" PRIu32 "/%" PRIu32 ": %p\n", i, mNumBuffers,
-                mBuffers[i]);
-    }
 }
 
 } // namespace default_camera_hal