Loading camera/ndk/impl/ACameraMetadata.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -587,6 +587,7 @@ std::unordered_set<uint32_t> ACameraMetadata::sSystemTags ({ ANDROID_CONTROL_SCENE_MODE_OVERRIDES, ANDROID_CONTROL_AE_PRECAPTURE_ID, ANDROID_CONTROL_AF_TRIGGER_ID, ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, ANDROID_DEMOSAIC_MODE, ANDROID_EDGE_STRENGTH, ANDROID_FLASH_FIRING_POWER, Loading camera/ndk/include/camera/NdkCameraMetadataTags.h +3 −3 Original line number Diff line number Diff line Loading @@ -2169,7 +2169,7 @@ typedef enum acamera_metadata_tag { * @see ACAMERA_SCALER_CROP_REGION */ ACAMERA_CONTROL_AUTOFRAMING = // byte (acamera_metadata_enum_android_control_autoframing_t) ACAMERA_CONTROL_START + 51, ACAMERA_CONTROL_START + 52, /** * <p>Whether the camera device supports ACAMERA_CONTROL_AUTOFRAMING.</p> * Loading @@ -2185,7 +2185,7 @@ typedef enum acamera_metadata_tag { * <p>Will be <code>false</code> if auto-framing is not available.</p> */ ACAMERA_CONTROL_AUTOFRAMING_AVAILABLE = // byte (acamera_metadata_enum_android_control_autoframing_available_t) ACAMERA_CONTROL_START + 52, ACAMERA_CONTROL_START + 53, /** * <p>Current state of auto-framing.</p> * Loading @@ -2212,7 +2212,7 @@ typedef enum acamera_metadata_tag { * @see ACAMERA_CONTROL_AUTOFRAMING_AVAILABLE */ ACAMERA_CONTROL_AUTOFRAMING_STATE = // byte (acamera_metadata_enum_android_control_autoframing_state_t) ACAMERA_CONTROL_START + 53, ACAMERA_CONTROL_START + 54, ACAMERA_CONTROL_END, /** Loading services/camera/libcameraservice/device3/Camera3OutputUtils.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -494,6 +494,32 @@ bool erasePhysicalCameraIdSet( return found; } const std::set<std::string>& getCameraIdsWithZoomLocked( const InFlightRequestMap& inflightMap, const CameraMetadata& metadata, const std::set<std::string>& cameraIdsWithZoom) { camera_metadata_ro_entry overrideEntry = metadata.find(ANDROID_CONTROL_SETTINGS_OVERRIDE); camera_metadata_ro_entry frameNumberEntry = metadata.find(ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER); if (overrideEntry.count != 1 || overrideEntry.data.i32[0] != ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM || frameNumberEntry.count != 1) { // No valid overriding frame number, skip return cameraIdsWithZoom; } uint32_t overridingFrameNumber = frameNumberEntry.data.i32[0]; ssize_t idx = inflightMap.indexOfKey(overridingFrameNumber); if (idx < 0) { ALOGE("%s: Failed to find pending request #%d in inflight map", __FUNCTION__, overridingFrameNumber); return cameraIdsWithZoom; } const InFlightRequest &r = inflightMap.valueFor(overridingFrameNumber); return r.cameraIdsWithZoom; } void processCaptureResult(CaptureOutputStates& states, const camera_capture_result *result) { ATRACE_CALL(); Loading Loading @@ -682,10 +708,12 @@ void processCaptureResult(CaptureOutputStates& states, const camera_capture_resu } else if (request.hasCallback) { CameraMetadata metadata; metadata = result->result; auto cameraIdsWithZoom = getCameraIdsWithZoomLocked( states.inflightMap, metadata, request.cameraIdsWithZoom); sendCaptureResult(states, metadata, request.resultExtras, collectedPartialResult, frameNumber, hasInputBufferInRequest, request.zslCapture && request.stillCapture, request.rotateAndCropAuto, request.cameraIdsWithZoom, request.rotateAndCropAuto, cameraIdsWithZoom, request.physicalMetadatas); } } Loading Loading @@ -912,11 +940,13 @@ void notifyShutter(CaptureOutputStates& states, const camera_shutter_msg_t &msg) states.listener->notifyShutter(r.resultExtras, msg.timestamp); } // send pending result and buffers const auto& cameraIdsWithZoom = getCameraIdsWithZoomLocked( inflightMap, r.pendingMetadata, r.cameraIdsWithZoom); sendCaptureResult(states, r.pendingMetadata, r.resultExtras, r.collectedPartialResult, msg.frame_number, r.hasInputBuffer, r.zslCapture && r.stillCapture, r.rotateAndCropAuto, r.cameraIdsWithZoom, r.physicalMetadatas); r.rotateAndCropAuto, cameraIdsWithZoom, r.physicalMetadatas); } returnAndRemovePendingOutputBuffers( states.useHalBufManager, states.listener, r, states.sessionStatsBuilder); Loading services/camera/libcameraservice/hidl/VndkVersionMetadataTags.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,5 +98,6 @@ std::map<int, std::vector<camera_metadata_tag>> dynamic_api_level_to_keys{ ANDROID_CONTROL_AUTOFRAMING, ANDROID_CONTROL_AUTOFRAMING_STATE, ANDROID_CONTROL_SETTINGS_OVERRIDE, ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, } }, }; Loading
camera/ndk/impl/ACameraMetadata.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -587,6 +587,7 @@ std::unordered_set<uint32_t> ACameraMetadata::sSystemTags ({ ANDROID_CONTROL_SCENE_MODE_OVERRIDES, ANDROID_CONTROL_AE_PRECAPTURE_ID, ANDROID_CONTROL_AF_TRIGGER_ID, ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, ANDROID_DEMOSAIC_MODE, ANDROID_EDGE_STRENGTH, ANDROID_FLASH_FIRING_POWER, Loading
camera/ndk/include/camera/NdkCameraMetadataTags.h +3 −3 Original line number Diff line number Diff line Loading @@ -2169,7 +2169,7 @@ typedef enum acamera_metadata_tag { * @see ACAMERA_SCALER_CROP_REGION */ ACAMERA_CONTROL_AUTOFRAMING = // byte (acamera_metadata_enum_android_control_autoframing_t) ACAMERA_CONTROL_START + 51, ACAMERA_CONTROL_START + 52, /** * <p>Whether the camera device supports ACAMERA_CONTROL_AUTOFRAMING.</p> * Loading @@ -2185,7 +2185,7 @@ typedef enum acamera_metadata_tag { * <p>Will be <code>false</code> if auto-framing is not available.</p> */ ACAMERA_CONTROL_AUTOFRAMING_AVAILABLE = // byte (acamera_metadata_enum_android_control_autoframing_available_t) ACAMERA_CONTROL_START + 52, ACAMERA_CONTROL_START + 53, /** * <p>Current state of auto-framing.</p> * Loading @@ -2212,7 +2212,7 @@ typedef enum acamera_metadata_tag { * @see ACAMERA_CONTROL_AUTOFRAMING_AVAILABLE */ ACAMERA_CONTROL_AUTOFRAMING_STATE = // byte (acamera_metadata_enum_android_control_autoframing_state_t) ACAMERA_CONTROL_START + 53, ACAMERA_CONTROL_START + 54, ACAMERA_CONTROL_END, /** Loading
services/camera/libcameraservice/device3/Camera3OutputUtils.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -494,6 +494,32 @@ bool erasePhysicalCameraIdSet( return found; } const std::set<std::string>& getCameraIdsWithZoomLocked( const InFlightRequestMap& inflightMap, const CameraMetadata& metadata, const std::set<std::string>& cameraIdsWithZoom) { camera_metadata_ro_entry overrideEntry = metadata.find(ANDROID_CONTROL_SETTINGS_OVERRIDE); camera_metadata_ro_entry frameNumberEntry = metadata.find(ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER); if (overrideEntry.count != 1 || overrideEntry.data.i32[0] != ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM || frameNumberEntry.count != 1) { // No valid overriding frame number, skip return cameraIdsWithZoom; } uint32_t overridingFrameNumber = frameNumberEntry.data.i32[0]; ssize_t idx = inflightMap.indexOfKey(overridingFrameNumber); if (idx < 0) { ALOGE("%s: Failed to find pending request #%d in inflight map", __FUNCTION__, overridingFrameNumber); return cameraIdsWithZoom; } const InFlightRequest &r = inflightMap.valueFor(overridingFrameNumber); return r.cameraIdsWithZoom; } void processCaptureResult(CaptureOutputStates& states, const camera_capture_result *result) { ATRACE_CALL(); Loading Loading @@ -682,10 +708,12 @@ void processCaptureResult(CaptureOutputStates& states, const camera_capture_resu } else if (request.hasCallback) { CameraMetadata metadata; metadata = result->result; auto cameraIdsWithZoom = getCameraIdsWithZoomLocked( states.inflightMap, metadata, request.cameraIdsWithZoom); sendCaptureResult(states, metadata, request.resultExtras, collectedPartialResult, frameNumber, hasInputBufferInRequest, request.zslCapture && request.stillCapture, request.rotateAndCropAuto, request.cameraIdsWithZoom, request.rotateAndCropAuto, cameraIdsWithZoom, request.physicalMetadatas); } } Loading Loading @@ -912,11 +940,13 @@ void notifyShutter(CaptureOutputStates& states, const camera_shutter_msg_t &msg) states.listener->notifyShutter(r.resultExtras, msg.timestamp); } // send pending result and buffers const auto& cameraIdsWithZoom = getCameraIdsWithZoomLocked( inflightMap, r.pendingMetadata, r.cameraIdsWithZoom); sendCaptureResult(states, r.pendingMetadata, r.resultExtras, r.collectedPartialResult, msg.frame_number, r.hasInputBuffer, r.zslCapture && r.stillCapture, r.rotateAndCropAuto, r.cameraIdsWithZoom, r.physicalMetadatas); r.rotateAndCropAuto, cameraIdsWithZoom, r.physicalMetadatas); } returnAndRemovePendingOutputBuffers( states.useHalBufManager, states.listener, r, states.sessionStatsBuilder); Loading
services/camera/libcameraservice/hidl/VndkVersionMetadataTags.h +1 −0 Original line number Diff line number Diff line Loading @@ -98,5 +98,6 @@ std::map<int, std::vector<camera_metadata_tag>> dynamic_api_level_to_keys{ ANDROID_CONTROL_AUTOFRAMING, ANDROID_CONTROL_AUTOFRAMING_STATE, ANDROID_CONTROL_SETTINGS_OVERRIDE, ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER, } }, };