From f63f1d906a1a9bdc86685df1ca77674ba0486cba Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Tue, 6 Nov 2018 16:33:29 +0000 Subject: [PATCH] Camera: Relax maximum Hal buffers and acquired count check For some resolutions input HeifWriter surfaces have much higher acquired buffer count compared to the maximum Hal buffer for the respective use case. From the tests so far shared streaming doesn't seem to be affected by the imbalance and the splitter is able to support this case. Bug: 110161669 Test: Camera CTS Change-Id: I129221b0f35e45c8b26f27f94910a6edda8d675b --- .../libcameraservice/device3/Camera3StreamSplitter.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp index 6d088428bd..ecb980abf2 100644 --- a/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp +++ b/services/camera/libcameraservice/device3/Camera3StreamSplitter.cpp @@ -253,6 +253,10 @@ status_t Camera3StreamSplitter::addOutputLocked(size_t surfaceId, const sp mMaxHalBuffers) { + SP_LOGW("%s: Consumer buffer count %zu larger than max. Hal buffers: %zu", __FUNCTION__, + mConsumerBufferCount[surfaceId], mMaxHalBuffers); + } mNotifiers[gbp] = listener; mOutputSlots[gbp] = std::make_unique(totalBufferCount); @@ -324,11 +328,7 @@ status_t Camera3StreamSplitter::removeOutputLocked(size_t surfaceId) { } mNotifiers[gbp] = nullptr; - if (mConsumerBufferCount[surfaceId] < mMaxHalBuffers) { - mMaxConsumerBuffers -= mConsumerBufferCount[surfaceId]; - } else { - SP_LOGE("%s: Cached consumer buffer count mismatch!", __FUNCTION__); - } + mMaxConsumerBuffers -= mConsumerBufferCount[surfaceId]; mConsumerBufferCount[surfaceId] = 0; return res;