diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-09-18 17:15:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-09-18 17:15:17 +0000 |
commit | b49dc95baee6ed4be00eae9aba6b1cf7a688f5f3 (patch) | |
tree | 98a93054246821cff87e4f006aeab75e1a8a210d | |
parent | 058002e0e362e55e09fa9b536483e916e34e2a8d (diff) | |
parent | 9d5c936d99e20bb9eafbcafaa3eac9e23b09643a (diff) | |
download | av-b49dc95baee6ed4be00eae9aba6b1cf7a688f5f3.tar.gz |
Merge "Camera3: Handle stream format override for shared output stream"
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp | 3 | ||||
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp index 2bb9ff7a3f..fb3ce4c619 100644 --- a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp +++ b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp @@ -60,9 +60,8 @@ status_t Camera3SharedOutputStream::connectStreamSplitterLocked() { } } - android::PixelFormat format = isFormatOverridden() ? getOriginalFormat() : getFormat(); res = mStreamSplitter->connect(initialSurfaces, usage, mUsage, camera3_stream::max_buffers, - getWidth(), getHeight(), format, &mConsumer); + getWidth(), getHeight(), getFormat(), &mConsumer); if (res != OK) { ALOGE("%s: Failed to connect to stream splitter: %s(%d)", __FUNCTION__, strerror(-res), res); diff --git a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp index 59ac636bde..a0be608032 100644 --- a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp +++ b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp @@ -182,12 +182,19 @@ status_t Camera3StreamSplitter::addOutputLocked(size_t surfaceId, const sp<Surfa return BAD_VALUE; } - status_t res = native_window_set_buffers_dimensions(outputQueue.get(), + status_t res = native_window_set_buffers_dimensions(outputQueue.get(), mWidth, mHeight); if (res != NO_ERROR) { SP_LOGE("addOutput: failed to set buffer dimensions (%d)", res); return res; } + res = native_window_set_buffers_format(outputQueue.get(), + mFormat); + if (res != OK) { + ALOGE("%s: Unable to configure stream buffer format %#x for surfaceId %zu", + __FUNCTION__, mFormat, surfaceId); + return res; + } sp<IGraphicBufferProducer> gbp = outputQueue->getIGraphicBufferProducer(); // Connect to the buffer producer |