summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2018-09-18 17:15:17 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-09-18 17:15:17 +0000
commitb49dc95baee6ed4be00eae9aba6b1cf7a688f5f3 (patch)
tree98a93054246821cff87e4f006aeab75e1a8a210d
parent058002e0e362e55e09fa9b536483e916e34e2a8d (diff)
parent9d5c936d99e20bb9eafbcafaa3eac9e23b09643a (diff)
downloadav-b49dc95baee6ed4be00eae9aba6b1cf7a688f5f3.tar.gz
Merge "Camera3: Handle stream format override for shared output stream"
-rw-r--r--services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp3
-rw-r--r--services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp9
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