Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f074ce7 authored by Shuzhen Wang's avatar Shuzhen Wang
Browse files

Camera3: Handle stream format override for shared output stream

If HAL overrides stream format, use the overridden format to configure
the buffer queues.

Bug: 113326269
Test: Camera CTS
Change-Id: I6b198e8ebfeaeafbda530722d995a12f88f0b35a
parent 0d97cec0
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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);
+8 −1
Original line number Diff line number Diff line
@@ -188,6 +188,13 @@ status_t Camera3StreamSplitter::addOutputLocked(size_t surfaceId, const sp<Surfa
        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