Loading services/camera/libcameraservice/device3/Camera3Device.cpp +6 −20 Original line number Diff line number Diff line Loading @@ -2439,25 +2439,6 @@ void Camera3Device::removeInFlightRequestIfReadyLocked(int idx) { nsecs_t sensorTimestamp = request.sensorTimestamp; nsecs_t shutterTimestamp = request.shutterTimestamp; bool skipResultMetadata = false; if (request.requestStatus != OK) { switch (request.requestStatus) { case CAMERA3_MSG_ERROR_DEVICE: case CAMERA3_MSG_ERROR_REQUEST: case CAMERA3_MSG_ERROR_RESULT: skipResultMetadata = true; break; case CAMERA3_MSG_ERROR_BUFFER: //Result metadata should return in this case. skipResultMetadata = false; break; default: SET_ERR("Unknown error message: %d", request.requestStatus); skipResultMetadata = false; break; } } // Check if it's okay to remove the request from InFlightMap: // In the case of a successful request: // all input and output buffers, all result metadata, shutter callback Loading @@ -2465,7 +2446,7 @@ void Camera3Device::removeInFlightRequestIfReadyLocked(int idx) { // In the case of a unsuccessful request: // all input and output buffers arrived. if (request.numBuffersLeft == 0 && (skipResultMetadata || (request.skipResultMetadata || (request.haveResultMetadata && shutterTimestamp != 0))) { ATRACE_ASYNC_END("frame capture", frameNumber); Loading Loading @@ -2941,6 +2922,11 @@ void Camera3Device::notifyError(const camera3_error_msg_t &msg, InFlightRequest &r = mInFlightMap.editValueAt(idx); r.requestStatus = msg.error_code; resultExtras = r.resultExtras; if (hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_RESULT == errorCode || hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_REQUEST == errorCode) { r.skipResultMetadata = true; } if (hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_RESULT == errorCode) { // In case of missing result check whether the buffers Loading services/camera/libcameraservice/device3/Camera3Device.h +9 −2 Original line number Diff line number Diff line Loading @@ -885,6 +885,11 @@ class Camera3Device : // For auto-exposure modes, equal to 1/(lower end of target FPS range) nsecs_t maxExpectedDuration; // Whether the result metadata for this request is to be skipped. The // result metadata should be skipped in the case of // REQUEST/RESULT error. bool skipResultMetadata; // Default constructor needed by KeyedVector InFlightRequest() : shutterTimestamp(0), Loading @@ -894,7 +899,8 @@ class Camera3Device : numBuffersLeft(0), hasInputBuffer(false), hasCallback(true), maxExpectedDuration(kDefaultExpectedDuration) { maxExpectedDuration(kDefaultExpectedDuration), skipResultMetadata(false) { } InFlightRequest(int numBuffers, CaptureResultExtras extras, bool hasInput, Loading @@ -907,7 +913,8 @@ class Camera3Device : resultExtras(extras), hasInputBuffer(hasInput), hasCallback(hasAppCallback), maxExpectedDuration(maxDuration) { maxExpectedDuration(maxDuration), skipResultMetadata(false) { } }; Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +6 −20 Original line number Diff line number Diff line Loading @@ -2439,25 +2439,6 @@ void Camera3Device::removeInFlightRequestIfReadyLocked(int idx) { nsecs_t sensorTimestamp = request.sensorTimestamp; nsecs_t shutterTimestamp = request.shutterTimestamp; bool skipResultMetadata = false; if (request.requestStatus != OK) { switch (request.requestStatus) { case CAMERA3_MSG_ERROR_DEVICE: case CAMERA3_MSG_ERROR_REQUEST: case CAMERA3_MSG_ERROR_RESULT: skipResultMetadata = true; break; case CAMERA3_MSG_ERROR_BUFFER: //Result metadata should return in this case. skipResultMetadata = false; break; default: SET_ERR("Unknown error message: %d", request.requestStatus); skipResultMetadata = false; break; } } // Check if it's okay to remove the request from InFlightMap: // In the case of a successful request: // all input and output buffers, all result metadata, shutter callback Loading @@ -2465,7 +2446,7 @@ void Camera3Device::removeInFlightRequestIfReadyLocked(int idx) { // In the case of a unsuccessful request: // all input and output buffers arrived. if (request.numBuffersLeft == 0 && (skipResultMetadata || (request.skipResultMetadata || (request.haveResultMetadata && shutterTimestamp != 0))) { ATRACE_ASYNC_END("frame capture", frameNumber); Loading Loading @@ -2941,6 +2922,11 @@ void Camera3Device::notifyError(const camera3_error_msg_t &msg, InFlightRequest &r = mInFlightMap.editValueAt(idx); r.requestStatus = msg.error_code; resultExtras = r.resultExtras; if (hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_RESULT == errorCode || hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_REQUEST == errorCode) { r.skipResultMetadata = true; } if (hardware::camera2::ICameraDeviceCallbacks::ERROR_CAMERA_RESULT == errorCode) { // In case of missing result check whether the buffers Loading
services/camera/libcameraservice/device3/Camera3Device.h +9 −2 Original line number Diff line number Diff line Loading @@ -885,6 +885,11 @@ class Camera3Device : // For auto-exposure modes, equal to 1/(lower end of target FPS range) nsecs_t maxExpectedDuration; // Whether the result metadata for this request is to be skipped. The // result metadata should be skipped in the case of // REQUEST/RESULT error. bool skipResultMetadata; // Default constructor needed by KeyedVector InFlightRequest() : shutterTimestamp(0), Loading @@ -894,7 +899,8 @@ class Camera3Device : numBuffersLeft(0), hasInputBuffer(false), hasCallback(true), maxExpectedDuration(kDefaultExpectedDuration) { maxExpectedDuration(kDefaultExpectedDuration), skipResultMetadata(false) { } InFlightRequest(int numBuffers, CaptureResultExtras extras, bool hasInput, Loading @@ -907,7 +913,8 @@ class Camera3Device : resultExtras(extras), hasInputBuffer(hasInput), hasCallback(hasAppCallback), maxExpectedDuration(maxDuration) { maxExpectedDuration(maxDuration), skipResultMetadata(false) { } }; Loading