From 76f8b43909817179b317880202360863b8f976d0 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Wed, 20 Feb 2013 19:15:15 -0800 Subject: Camera: Change ProCamera to take IGraphicBufferProducer Change-Id: Iec62eead6d179aa5486f7719143340976bb76e7d --- camera/IProCameraUser.cpp | 11 +++++++---- camera/ProCamera.cpp | 9 +++++---- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'camera') diff --git a/camera/IProCameraUser.cpp b/camera/IProCameraUser.cpp index cd7bf5c..e60cfe5 100644 --- a/camera/IProCameraUser.cpp +++ b/camera/IProCameraUser.cpp @@ -219,7 +219,7 @@ public: } virtual status_t createStream(int width, int height, int format, - const sp& surface, + const sp& bufferProducer, /*out*/ int* streamId) { @@ -229,7 +229,9 @@ public: data.writeInt32(height); data.writeInt32(format); - Surface::writeToParcel(surface, &data); + sp b(bufferProducer->asBinder()); + data.writeStrongBinder(b); + remote()->transact(CREATE_STREAM, data, &reply); int sId = reply.readInt32(); @@ -340,11 +342,12 @@ status_t BnProCameraUser::onTransact( height = data.readInt32(); format = data.readInt32(); - sp surface = Surface::readFromParcel(data); + sp bp = + interface_cast(data.readStrongBinder()); int streamId = -1; status_t ret; - ret = createStream(width, height, format, surface, &streamId); + ret = createStream(width, height, format, bp, &streamId); reply->writeInt32(streamId); reply->writeInt32(ret); diff --git a/camera/ProCamera.cpp b/camera/ProCamera.cpp index 92ec9d6..8fd08f4 100644 --- a/camera/ProCamera.cpp +++ b/camera/ProCamera.cpp @@ -278,7 +278,8 @@ status_t ProCamera::createStream(int width, int height, int format, sp c = mCamera; if (c == 0) return NO_INIT; - return c->createStream(width, height, format, surface, streamId); + return c->createStream(width, height, format, surface->getIGraphicBufferProducer(), + streamId); } status_t ProCamera::createStream(int width, int height, int format, @@ -293,10 +294,10 @@ status_t ProCamera::createStream(int width, int height, int format, status_t stat = INVALID_OPERATION; if (bufferProducer != 0) { - binder = bufferProducer->asBinder(); + sp c = mCamera; + if (c == 0) return NO_INIT; - ALOGV("%s: createStreamT END (%d), StreamID = %d", __FUNCTION__, stat, - *streamId); + return c->createStream(width, height, format, bufferProducer, streamId); } else { *streamId = -1; -- cgit v1.1