Camera: Check consumer interface before disconnecting

The internal buffer queue and respective 'mConsumer' may
never get initialized in case the connection and/or
configuration of client shared output surfaces fails.
To avoid possible instabilities check whether the
consumer interface is valid before trying to disconnect.

Bug: 143506890
Test: atest
cts/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java

Change-Id: Ia533233444fd548ddb52f4fde06212a21bc843bc
Merged-In: Ia533233444fd548ddb52f4fde06212a21bc843bc
gugelfrei
Emilian Peev 5 years ago
parent 9132522c7e
commit 960bbfab7b

@ -139,7 +139,9 @@ void Camera3StreamSplitter::disconnect() {
mOutputSlots.clear();
mConsumerBufferCount.clear();
mConsumer->consumerDisconnect();
if (mConsumer.get() != nullptr) {
mConsumer->consumerDisconnect();
}
if (mBuffers.size() > 0) {
SP_LOGW("%zu buffers still being tracked", mBuffers.size());

Loading…
Cancel
Save