summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/device3
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-11-21 21:55:59 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-11-21 21:56:00 +0000
commit5b19084a5089e3f6527a82440a1c8227c3a366fa (patch)
treeaec26dceecfc26df5375080ee4c3dd25f62332e7 /services/camera/libcameraservice/device3
parent23700debf767ef7fdfc30d96612771c3a03ad40d (diff)
parent1b05dfc8df5e741086747d076fc39c79fb4acb33 (diff)
downloadframeworks_av-5b19084a5089e3f6527a82440a1c8227c3a366fa.zip
frameworks_av-5b19084a5089e3f6527a82440a1c8227c3a366fa.tar.gz
frameworks_av-5b19084a5089e3f6527a82440a1c8227c3a366fa.tar.bz2
Merge "Camera3: Remove request from InFlightMap for error case"
Diffstat (limited to 'services/camera/libcameraservice/device3')
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 8acda33..edb77aa 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -1668,8 +1668,10 @@ void Camera3Device::processCaptureResult(const camera3_capture_result *result) {
return;
}
- // Check if everything has arrived for this result (buffers and metadata)
- if (request.haveResultMetadata && request.numBuffersLeft == 0) {
+ // Check if everything has arrived for this result (buffers and metadata), remove it from
+ // InFlightMap if both arrived or HAL reports error for this request (i.e. during flush).
+ if ((request.requestStatus != OK) ||
+ (request.haveResultMetadata && request.numBuffersLeft == 0)) {
ATRACE_ASYNC_END("frame capture", frameNumber);
mInFlightMap.removeItemsAt(idx, 1);
}