Home | History | Annotate | Download | only in device3

Lines Matching refs:request

177     /** Start up request queue thread */
181 SET_ERR_L("Unable to start request queue thread: %s (%d)",
278 // HAL may be in a bad state, so waiting for request thread
477 lines = String8(" Last request sent:\n");
539 CLOGE("Can't create capture request");
543 // Setup burst Id and request Id
563 status_t Camera3Device::capture(CameraMetadata &request, int64_t* /*lastFrameNumber*/) {
567 requests.push_back(request);
605 ALOGV("Camera %d: Capture request %" PRId32 " enqueued", mId,
608 CLOGE("Cannot queue request. Impossible.");
622 status_t Camera3Device::setStreamingRequest(const CameraMetadata &request,
627 requests.push_back(request);
639 const CameraMetadata &request) {
662 sp<CaptureRequest> newRequest = createCaptureRequest(request);
687 ALOGV("Camera %d: Clearing repeating request", mId);
1093 CameraMetadata *request) {
1117 *request = mRequestTemplateCache[templateId];
1131 *request = rawRequest;
1316 // Mix-in this trigger into the next request and only the next request.
1337 // Mix-in this trigger into the next request and only the next request.
1358 // Mix-in this trigger into the next request and only the next request.
1426 CLOGE("Stream %d has already been a request target", streamId);
1431 CLOGE("Stream %d is already a target in a pending request", streamId);
1462 CLOGE("Stream %d is a target of a in-progress request", streamId);
1513 const CameraMetadata &request) {
1518 newRequest->mSettings = request;
1525 CLOGE("Request references unknown input stream %d",
1542 CLOGE("Request references an input stream that's being prepared!");
1560 CLOGE("Request references unknown stream %d",
1579 CLOGE("Request references an output stream that's being prepared!");
1740 // Request thread needs to know to avoid using repeat-last-settings protocol
1871 * In-flight request management
1932 ALOGVV("%s: Camera %d: Frame %d, Request ID %d: AF mode %d, AWB mode %d, "
1942 // android.request.frameCount
1943 // android.request.requestId
2077 const InFlightRequest &request = mInFlightMap.valueAt(idx);
2080 nsecs_t sensorTimestamp = request.sensorTimestamp;
2081 nsecs_t shutterTimestamp = request.shutterTimestamp;
2083 // Check if it's okay to remove the request from InFlightMap:
2084 // In the case of a successful request:
2087 // In the case of a unsuccessful request:
2089 if (request.numBuffersLeft == 0 &&
2090 (request.requestStatus != OK ||
2091 (request.haveResultMetadata && shutterTimestamp != 0))) {
2095 if (request.requestStatus == OK &&
2102 // for an unsuccessful request, it may have pending output buffers to
2104 assert(request.requestStatus != OK ||
2105 request.pendingOutputBuffers.size() == 0);
2106 returnOutputBuffers(request.pendingOutputBuffers.array(),
2107 request.pendingOutputBuffers.size(), 0);
2237 // in-flight request and they will be returned when the shutter timestamp
2250 InFlightRequest &request = mInFlightMap.editValueAt(idx);
2254 __FUNCTION__, request.resultExtras.requestId,
2255 request.resultExtras.frameNumber, request.resultExtras.burstId,
2261 request.resultExtras.partialResultCount = result->partial_result;
2274 request.partialResult.collectedResult.append(result->result);
2287 request.partialResult.collectedResult.append(
2289 request.partialResult.collectedResult.erase(
2296 if (!request.partialResult.haveSent3A) {
2297 request.partialResult.haveSent3A =
2299 request.partialResult.collectedResult,
2300 request.resultExtras);
2305 shutterTimestamp = request.shutterTimestamp;
2306 hasInputBufferInRequest = request.hasInputBuffer;
2310 if (request.haveResultMetadata) {
2316 !request.partialResult.collectedResult.isEmpty()) {
2318 request.partialResult.collectedResult);
2320 request.haveResultMetadata = true;
2329 " buffer sent in the request",
2333 request.numBuffersLeft -= numBuffersReturned;
2334 if (request.numBuffersLeft < 0) {
2344 request.sensorTimestamp = entry.data.i64[0];
2348 // the in-flight request. Otherwise, return the output buffers to
2351 request.pendingOutputBuffers.appendArray(result->output_buffers,
2360 request.pendingMetadata = result->result;
2361 request.partialResult.collectedResult = collectedPartialResult;
2365 sendCaptureResult(metadata, request.resultExtras,
2367 request.aeTriggerCancelOverride);
2388 " buffer sent in the request, skipping input buffer return.",
2475 ALOGE("Camera %d: %s: cannot find in-flight request on "
2509 // Set timestamp for the request in the in-flight tracking
2510 // and get the request ID to send upstream
2660 * in the request settings per trigger tag, and can't send more than 1
2661 * trigger per request.
2719 // Send errors for all requests pending in the request queue, including
2729 ALOGW("%s: %d: couldn't get input buffer while clearing the request "
2734 ALOGE("%s: %d: couldn't return input buffer while clearing the request "
2739 // Set the frame number this request would have had, if it
2741 // The requestId and burstId fields were set when the request was
2793 * request.
2795 void Camera3Device::RequestThread::handleAePrecaptureCancelRequest(sp<CaptureRequest> request) {
2796 request->mAeTriggerCancelOverride.applyAeLock = false;
2797 request->mAeTriggerCancelOverride.applyAePrecaptureTrigger = false;
2804 request->mSettings.find(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER);
2809 request->mSettings.update(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &aePrecaptureTrigger, 1);
2810 request->mAeTriggerCancelOverride.applyAePrecaptureTrigger = true;
2811 request->mAeTriggerCancelOverride.aePrecaptureTrigger =
2815 camera_metadata_entry_t aeLock = request->mSettings.find(ANDROID_CONTROL_AE_LOCK);
2818 request->mSettings.update(ANDROID_CONTROL_AE_LOCK, &aeLock, 1);
2819 request->mAeTriggerCancelOverride.applyAeLock = true;
2820 request->mAeTriggerCancelOverride.aeLock = ANDROID_CONTROL_AE_LOCK_OFF;
2862 // Create request to HAL
2863 camera3_capture_request_t request = camera3_capture_request_t();
2864 request.frame_number = nextRequest->mResultExtras.frameNumber;
2867 // Get the request ID, if any
2874 ALOGW("%s: Did not have android.request.id set in the request",
2884 "(capture request %d, HAL device: %s (%d)",
2885 request.frame_number, strerror(-res), res);
2886 cleanUpFailedRequest(request, nextRequest, outputBuffers);
2893 // If the request is the same as last, or we had triggers last time
2902 "(capture request %d, HAL device: %s (%d)",
2903 request.frame_number, strerror(-res), res);
2904 cleanUpFailedRequest(request, nextRequest, outputBuffers);
2909 * The request should be presorted so accesses in HAL
2913 request.settings = nextRequest->mSettings.getAndLock();
2915 ALOGVV("%s: Request settings are NEW", __FUNCTION__);
2920 request.settings,
2925 ALOGV("%s: Request (frame num %d) had AF trigger 0x%x",
2927 request.frame_number,
2932 // leave request.settings NULL to indicate 'reuse latest given'
2933 ALOGVV("%s: Request settings are REUSED",
2941 request.input_buffer = &nextRequest->mInputBuffer;
2944 request.input_buffer = NULL;
2949 request.output_buffers = outputBuffers.array();
2957 ALOGE("RequestThread: Can't get output buffer, skipping request:"
2967 cleanUpFailedRequest(request, nextRequest, outputBuffers);
2970 request.num_output_buffers++;
2972 totalNumBuffers += request.num_output_buffers;
2974 // Log request in the in-flight queue
2979 cleanUpFailedRequest(request, nextRequest, outputBuffers);
2983 res = parent->registerInFlight(request.frame_number,
2985 /*hasInput*/request.input_buffer != NULL,
2993 SET_ERR("RequestThread: Unable to register new in-flight request:"
2995 cleanUpFailedRequest(request, nextRequest, outputBuffers);
2999 // Inform waitUntilRequestProcessed thread of a new request ID
3007 // Submit request and block until ready for next one
3008 ATRACE_ASYNC_BEGIN("frame capture", request.frame_number);
3010 res = mHal3Device->ops->process_capture_request(mHal3Device, &request);
3017 SET_ERR("RequestThread: Unable to submit capture request %d to HAL"
3018 " device: %s (%d)", request.frame_number, strerror(-res), res);
3019 cleanUpFailedRequest(request, nextRequest, outputBuffers);
3023 // Update the latest request sent to HAL
3024 if (request.settings != NULL) { // Don't update them if they were unchanged
3027 camera_metadata_t* cloned = clone_camera_metadata(request.settings);
3031 if (request.settings != NULL) {
3032 nextRequest->mSettings.unlock(request.settings);
3035 // Unset as current request
3045 "(capture request %d, HAL device: %s (%d)",
3046 request.frame_number, strerror(-res), res);
3073 for (const auto& request : mRequestQueue) {
3074 for (const auto& s : request->mOutputStreams) {
3077 if (stream == request->mInputStream) return true;
3080 for (const auto& request : mRepeatingRequests) {
3081 for (const auto& s : request->mOutputStreams) {
3084 if (stream == request->mInputStream) return true;
3091 camera3_capture_request_t &request,
3095 if (request.settings != NULL) {
3096 nextRequest->mSettings.unlock(request.settings);
3102 for (size_t i = 0; i < request.num_output_buffers; i++) {
3118 // request), to avoid putting that request in the queue temporarily.
3123 // Always atomically enqueue all requests in a repeating request
3160 // Don't have a repeating request already in hand, so queue
3182 // request if so. Can't use 'NULL request == repeat' across configure calls.
3201 ALOGE("%s: Can't get input buffer, skipping request:"
3246 // If paused by request (setPaused), don't resume, to avoid
3275 const sp<CaptureRequest> &request) {
3285 CameraMetadata &metadata = request->mSettings;
3296 request->mResultExtras.precaptureTriggerId = triggerId;
3299 request->mResultExtras.afTriggerId = triggerId;
3311 * Already has an entry for this trigger in the request.
3349 ALOGE("%s: Failed to update request metadata with trigger tag %s"
3366 const sp<CaptureRequest> &request) {
3369 CameraMetadata &metadata = request->mSettings;
3401 ALOGE("%s: Failed to restore request metadata with trigger tag %s"
3429 const sp<CaptureRequest> &request) {
3434 CameraMetadata &metadata = request->mSettings;