diff options
Diffstat (limited to 'services/camera/libcameraservice/ProCamera2Client.cpp')
-rw-r--r-- | services/camera/libcameraservice/ProCamera2Client.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
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::cancelStream(int streamId) { } 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 @@ status_t ProCamera2Client::createStream(int width, int height, int format, 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. |