Camera: Change ProCamera to take IGraphicBufferProducer

Change-Id: Iec62eead6d179aa5486f7719143340976bb76e7d
diff --git a/services/camera/libcameraservice/ProCamera2Client.cpp b/services/camera/libcameraservice/ProCamera2Client.cpp
index 5ebe713..aa02f10 100644
--- a/services/camera/libcameraservice/ProCamera2Client.cpp
+++ b/services/camera/libcameraservice/ProCamera2Client.cpp
@@ -238,7 +238,7 @@
 }
 
 status_t ProCamera2Client::createStream(int width, int height, int format,
-                      const sp<Surface>& surface,
+                      const sp<IGraphicBufferProducer>& bufferProducer,
                       /*out*/
                       int* streamId)
 {
@@ -254,7 +254,15 @@
 
     Mutex::Autolock icl(mIProCameraUserLock);
 
-    return mDevice->createStream(surface, width, height, format, /*size*/1, streamId);
+    sp<IBinder> binder;
+    sp<ANativeWindow> window;
+    if (bufferProducer != 0) {
+        binder = bufferProducer->asBinder();
+        window = new Surface(bufferProducer);
+    }
+
+    return mDevice->createStream(window, width, height, format, /*size*/1,
+                                 streamId);
 }
 
 // Create a request object from a template.
diff --git a/services/camera/libcameraservice/ProCamera2Client.h b/services/camera/libcameraservice/ProCamera2Client.h
index ed42e22..b72fd63 100644
--- a/services/camera/libcameraservice/ProCamera2Client.h
+++ b/services/camera/libcameraservice/ProCamera2Client.h
@@ -53,9 +53,9 @@
     virtual status_t      cancelStream(int streamId);
 
     virtual status_t      createStream(int width, int height, int format,
-                                       const sp<Surface>& surface,
-                                       /*out*/
-                                       int* streamId);
+                                      const sp<IGraphicBufferProducer>& bufferProducer,
+                                      /*out*/
+                                      int* streamId);
 
     // Create a request object from a template.
     // -- Caller owns the newly allocated metadata