From 1e8baa298c6ddf98a0834cb9f30d1796b607c4cc Mon Sep 17 00:00:00 2001 From: Lei Yuan Date: Wed, 21 Nov 2018 10:50:37 +0800 Subject: [PATCH] Camera: update Intent firstly at api1 capture with device3 capture fps range depend on intent which is different between still capture and video snapshot. Bug: 119841034 Change-Id: Ib7c653c5f32c451631f208bf7353c06340c43b18 Signed-off-by: Lei Yuan --- .../api1/client2/CaptureSequencer.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp index 1ee216fd9a..84f0a895b6 100644 --- a/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp +++ b/services/camera/libcameraservice/api1/client2/CaptureSequencer.cpp @@ -492,7 +492,6 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardCapture( ATRACE_CALL(); SharedParameters::Lock l(client->getParameters()); Vector outputStreams; - uint8_t captureIntent = static_cast(ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE); /** * Set up output streams in the request @@ -522,7 +521,6 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardCapture( if (l.mParameters.state == Parameters::VIDEO_SNAPSHOT) { outputStreams.push(client->getRecordingStreamId()); - captureIntent = static_cast(ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT); } res = mCaptureRequest.update(ANDROID_REQUEST_OUTPUT_STREAMS, @@ -531,10 +529,6 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardCapture( res = mCaptureRequest.update(ANDROID_REQUEST_ID, &mCaptureId, 1); } - if (res == OK) { - res = mCaptureRequest.update(ANDROID_CONTROL_CAPTURE_INTENT, - &captureIntent, 1); - } if (res == OK) { res = mCaptureRequest.sort(); } @@ -683,6 +677,8 @@ status_t CaptureSequencer::updateCaptureRequest(const Parameters ¶ms, sp &client) { ATRACE_CALL(); status_t res; + uint8_t captureIntent = static_cast(ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE); + if (mCaptureRequest.entryCount() == 0) { res = client->getCameraDevice()->createDefaultRequest( CAMERA2_TEMPLATE_STILL_CAPTURE, @@ -695,6 +691,16 @@ status_t CaptureSequencer::updateCaptureRequest(const Parameters ¶ms, } } + if (params.state == Parameters::VIDEO_SNAPSHOT) { + captureIntent = static_cast(ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT); + } + res = mCaptureRequest.update(ANDROID_CONTROL_CAPTURE_INTENT, &captureIntent, 1); + if (res != OK) { + ALOGE("%s: Camera %d: Unable to update capture intent: %s (%d)", + __FUNCTION__, client->getCameraId(), strerror(-res), res); + return res; + } + res = params.updateRequest(&mCaptureRequest); if (res != OK) { ALOGE("%s: Camera %d: Unable to update common entries of capture "