commit | a4833ace01311c64b91f8ff0a2b33d1976af26d2 | [log] [tgz] |
---|---|---|
author | Emilian Peev <epeev@google.com> | Mon Jul 23 11:41:44 2018 +0100 |
committer | Shuzhen Wang <shuzhenwang@google.com> | Tue Aug 21 09:00:58 2018 -0700 |
tree | 573792b2fd99bc9bc6811c2e72f34219961db216 | |
parent | 8be94e995403a65724c5a75e3084bc41eb69fb22 [diff] [blame] |
Camera: Flush in-flight requests during device detach Improve performance during device detach by flushing all camera requests. Bug: 80402005 Test: Camera CTS Change-Id: I3a6864575b1533c77b5478c2390a908892700f6e Merged-In: I3a6864575b1533c77b5478c2390a908892700f6e
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp index 98d0534..18788f2 100644 --- a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp +++ b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
@@ -1677,9 +1677,12 @@ // WORKAROUND: HAL refuses to disconnect while there's streams in flight { - mDevice->clearStreamingRequest(); - + int64_t lastFrameNumber; status_t code; + if ((code = mDevice->flush(&lastFrameNumber)) != OK) { + ALOGE("%s: flush failed with code 0x%x", __FUNCTION__, code); + } + if ((code = mDevice->waitUntilDrained()) != OK) { ALOGE("%s: waitUntilDrained failed with code 0x%x", __FUNCTION__, code);