Loading services/camera/virtualcamera/VirtualCameraDevice.cc +11 −9 Original line number Diff line number Diff line Loading @@ -250,7 +250,8 @@ std::optional<CameraMetadata> initCameraCharacteristics( .setRequestPartialResultCount(1) .setPipelineMaxDepth(kPipelineMaxDepth) .setSyncMaxLatency(ANDROID_SYNC_MAX_LATENCY_UNKNOWN) .setAvailableRequestKeys({ANDROID_CONTROL_CAPTURE_INTENT, .setAvailableRequestKeys({ANDROID_COLOR_CORRECTION_ABERRATION_MODE, ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, ANDROID_CONTROL_AE_TARGET_FPS_RANGE, Loading @@ -265,19 +266,20 @@ std::optional<CameraMetadata> initCameraCharacteristics( ANDROID_CONTROL_SCENE_MODE, ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, ANDROID_CONTROL_ZOOM_RATIO, ANDROID_STATISTICS_FACE_DETECT_MODE, ANDROID_FLASH_MODE, ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, ANDROID_JPEG_QUALITY, ANDROID_JPEG_THUMBNAIL_QUALITY}) ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_NOISE_REDUCTION_MODE, ANDROID_STATISTICS_FACE_DETECT_MODE}) .setAvailableResultKeys( {ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE, ANDROID_FLASH_MODE, ANDROID_FLASH_STATE, {ANDROID_COLOR_CORRECTION_ABERRATION_MODE, ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE, ANDROID_FLASH_MODE, ANDROID_FLASH_STATE, ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, ANDROID_JPEG_QUALITY, ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_SENSOR_TIMESTAMP, ANDROID_LENS_FOCAL_LENGTH}) ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_LENS_FOCAL_LENGTH, ANDROID_SENSOR_TIMESTAMP, ANDROID_NOISE_REDUCTION_MODE}) .setAvailableCapabilities( {ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE}); Loading services/camera/virtualcamera/VirtualCameraRenderThread.cc +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ * limitations under the License. */ #include "system/camera_metadata.h" #define LOG_TAG "VirtualCameraRenderThread" #include "VirtualCameraRenderThread.h" Loading Loading @@ -93,6 +94,8 @@ CameraMetadata createCaptureResultMetadata( const Resolution reportedSensorSize) { std::unique_ptr<CameraMetadata> metadata = MetadataBuilder() .setAberrationCorrectionMode( ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF) .setControlAeMode(ANDROID_CONTROL_AE_MODE_ON) .setControlAePrecaptureTrigger( ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE) Loading @@ -109,6 +112,7 @@ CameraMetadata createCaptureResultMetadata( .setJpegThumbnailSize(requestSettings.thumbnailResolution.width, requestSettings.thumbnailResolution.height) .setJpegThumbnailQuality(requestSettings.thumbnailJpegQuality) .setNoiseReductionMode(ANDROID_NOISE_REDUCTION_MODE_OFF) .setPipelineDepth(kPipelineDepth) .setSensorTimestamp(timestamp) .build(); Loading services/camera/virtualcamera/VirtualCameraSession.cc +3 −0 Original line number Diff line number Diff line Loading @@ -142,6 +142,8 @@ CameraMetadata createDefaultRequestSettings( int maxFps = getMaxFps(inputConfigs); auto metadata = MetadataBuilder() .setAberrationCorrectionMode( ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF) .setControlCaptureIntent(requestTemplateToIntent(type)) .setControlMode(ANDROID_CONTROL_MODE_AUTO) .setControlAeMode(ANDROID_CONTROL_AE_MODE_ON) Loading @@ -160,6 +162,7 @@ CameraMetadata createDefaultRequestSettings( .setJpegQuality(VirtualCameraDevice::kDefaultJpegQuality) .setJpegThumbnailQuality(VirtualCameraDevice::kDefaultJpegQuality) .setJpegThumbnailSize(0, 0) .setNoiseReductionMode(ANDROID_NOISE_REDUCTION_MODE_OFF) .build(); if (metadata == nullptr) { ALOGE("%s: Failed to construct metadata for default request type %s", Loading services/camera/virtualcamera/util/MetadataUtil.cc +15 −0 Original line number Diff line number Diff line Loading @@ -489,6 +489,14 @@ MetadataBuilder& MetadataBuilder::setAvailableAberrationCorrectionModes( return *this; } MetadataBuilder& MetadataBuilder::setAberrationCorrectionMode( const camera_metadata_enum_android_color_correction_aberration_mode aberrationCorrectionMode) { mEntryMap[ANDROID_COLOR_CORRECTION_ABERRATION_MODE] = asVectorOf<uint8_t>(aberrationCorrectionMode); return *this; } MetadataBuilder& MetadataBuilder::setAvailableNoiseReductionModes( const std::vector<camera_metadata_enum_android_noise_reduction_mode>& noiseReductionModes) { Loading @@ -497,6 +505,13 @@ MetadataBuilder& MetadataBuilder::setAvailableNoiseReductionModes( return *this; } MetadataBuilder& MetadataBuilder::setNoiseReductionMode( camera_metadata_enum_android_noise_reduction_mode noiseReductionMode) { mEntryMap[ANDROID_NOISE_REDUCTION_MODE] = asVectorOf<uint8_t>(noiseReductionMode); return *this; } MetadataBuilder& MetadataBuilder::setRequestPartialResultCount( const int partialResultCount) { mEntryMap[ANDROID_REQUEST_PARTIAL_RESULT_COUNT] = Loading services/camera/virtualcamera/util/MetadataUtil.h +9 −0 Original line number Diff line number Diff line Loading @@ -155,11 +155,20 @@ class MetadataBuilder { camera_metadata_enum_android_color_correction_aberration_mode>& aberrationCorectionModes); // See COLOR_CORRECTION_ABERRATION_MODE in CaptureRequest.java. MetadataBuilder& setAberrationCorrectionMode( camera_metadata_enum_android_color_correction_aberration_mode aberrationCorrectionMode); // See NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES in CameraCharacteristics.java. MetadataBuilder& setAvailableNoiseReductionModes( const std::vector<camera_metadata_enum_android_noise_reduction_mode>& noiseReductionModes); // See NOISE_REDUCTION_MODE in CaptureRequest.java. MetadataBuilder& setNoiseReductionMode( camera_metadata_enum_android_noise_reduction_mode noiseReductionMode); // See REQUEST_PARTIAL_RESULT_COUNT in CameraCharacteristics.java. MetadataBuilder& setRequestPartialResultCount(int partialResultCount); Loading Loading
services/camera/virtualcamera/VirtualCameraDevice.cc +11 −9 Original line number Diff line number Diff line Loading @@ -250,7 +250,8 @@ std::optional<CameraMetadata> initCameraCharacteristics( .setRequestPartialResultCount(1) .setPipelineMaxDepth(kPipelineMaxDepth) .setSyncMaxLatency(ANDROID_SYNC_MAX_LATENCY_UNKNOWN) .setAvailableRequestKeys({ANDROID_CONTROL_CAPTURE_INTENT, .setAvailableRequestKeys({ANDROID_COLOR_CORRECTION_ABERRATION_MODE, ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, ANDROID_CONTROL_AE_TARGET_FPS_RANGE, Loading @@ -265,19 +266,20 @@ std::optional<CameraMetadata> initCameraCharacteristics( ANDROID_CONTROL_SCENE_MODE, ANDROID_CONTROL_VIDEO_STABILIZATION_MODE, ANDROID_CONTROL_ZOOM_RATIO, ANDROID_STATISTICS_FACE_DETECT_MODE, ANDROID_FLASH_MODE, ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, ANDROID_JPEG_QUALITY, ANDROID_JPEG_THUMBNAIL_QUALITY}) ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_NOISE_REDUCTION_MODE, ANDROID_STATISTICS_FACE_DETECT_MODE}) .setAvailableResultKeys( {ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE, ANDROID_FLASH_MODE, ANDROID_FLASH_STATE, {ANDROID_COLOR_CORRECTION_ABERRATION_MODE, ANDROID_CONTROL_AE_MODE, ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, ANDROID_CONTROL_AF_MODE, ANDROID_CONTROL_AWB_MODE, ANDROID_CONTROL_EFFECT_MODE, ANDROID_CONTROL_MODE, ANDROID_FLASH_MODE, ANDROID_FLASH_STATE, ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES, ANDROID_JPEG_QUALITY, ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_SENSOR_TIMESTAMP, ANDROID_LENS_FOCAL_LENGTH}) ANDROID_JPEG_THUMBNAIL_QUALITY, ANDROID_LENS_FOCAL_LENGTH, ANDROID_SENSOR_TIMESTAMP, ANDROID_NOISE_REDUCTION_MODE}) .setAvailableCapabilities( {ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE}); Loading
services/camera/virtualcamera/VirtualCameraRenderThread.cc +4 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ * limitations under the License. */ #include "system/camera_metadata.h" #define LOG_TAG "VirtualCameraRenderThread" #include "VirtualCameraRenderThread.h" Loading Loading @@ -93,6 +94,8 @@ CameraMetadata createCaptureResultMetadata( const Resolution reportedSensorSize) { std::unique_ptr<CameraMetadata> metadata = MetadataBuilder() .setAberrationCorrectionMode( ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF) .setControlAeMode(ANDROID_CONTROL_AE_MODE_ON) .setControlAePrecaptureTrigger( ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE) Loading @@ -109,6 +112,7 @@ CameraMetadata createCaptureResultMetadata( .setJpegThumbnailSize(requestSettings.thumbnailResolution.width, requestSettings.thumbnailResolution.height) .setJpegThumbnailQuality(requestSettings.thumbnailJpegQuality) .setNoiseReductionMode(ANDROID_NOISE_REDUCTION_MODE_OFF) .setPipelineDepth(kPipelineDepth) .setSensorTimestamp(timestamp) .build(); Loading
services/camera/virtualcamera/VirtualCameraSession.cc +3 −0 Original line number Diff line number Diff line Loading @@ -142,6 +142,8 @@ CameraMetadata createDefaultRequestSettings( int maxFps = getMaxFps(inputConfigs); auto metadata = MetadataBuilder() .setAberrationCorrectionMode( ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF) .setControlCaptureIntent(requestTemplateToIntent(type)) .setControlMode(ANDROID_CONTROL_MODE_AUTO) .setControlAeMode(ANDROID_CONTROL_AE_MODE_ON) Loading @@ -160,6 +162,7 @@ CameraMetadata createDefaultRequestSettings( .setJpegQuality(VirtualCameraDevice::kDefaultJpegQuality) .setJpegThumbnailQuality(VirtualCameraDevice::kDefaultJpegQuality) .setJpegThumbnailSize(0, 0) .setNoiseReductionMode(ANDROID_NOISE_REDUCTION_MODE_OFF) .build(); if (metadata == nullptr) { ALOGE("%s: Failed to construct metadata for default request type %s", Loading
services/camera/virtualcamera/util/MetadataUtil.cc +15 −0 Original line number Diff line number Diff line Loading @@ -489,6 +489,14 @@ MetadataBuilder& MetadataBuilder::setAvailableAberrationCorrectionModes( return *this; } MetadataBuilder& MetadataBuilder::setAberrationCorrectionMode( const camera_metadata_enum_android_color_correction_aberration_mode aberrationCorrectionMode) { mEntryMap[ANDROID_COLOR_CORRECTION_ABERRATION_MODE] = asVectorOf<uint8_t>(aberrationCorrectionMode); return *this; } MetadataBuilder& MetadataBuilder::setAvailableNoiseReductionModes( const std::vector<camera_metadata_enum_android_noise_reduction_mode>& noiseReductionModes) { Loading @@ -497,6 +505,13 @@ MetadataBuilder& MetadataBuilder::setAvailableNoiseReductionModes( return *this; } MetadataBuilder& MetadataBuilder::setNoiseReductionMode( camera_metadata_enum_android_noise_reduction_mode noiseReductionMode) { mEntryMap[ANDROID_NOISE_REDUCTION_MODE] = asVectorOf<uint8_t>(noiseReductionMode); return *this; } MetadataBuilder& MetadataBuilder::setRequestPartialResultCount( const int partialResultCount) { mEntryMap[ANDROID_REQUEST_PARTIAL_RESULT_COUNT] = Loading
services/camera/virtualcamera/util/MetadataUtil.h +9 −0 Original line number Diff line number Diff line Loading @@ -155,11 +155,20 @@ class MetadataBuilder { camera_metadata_enum_android_color_correction_aberration_mode>& aberrationCorectionModes); // See COLOR_CORRECTION_ABERRATION_MODE in CaptureRequest.java. MetadataBuilder& setAberrationCorrectionMode( camera_metadata_enum_android_color_correction_aberration_mode aberrationCorrectionMode); // See NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES in CameraCharacteristics.java. MetadataBuilder& setAvailableNoiseReductionModes( const std::vector<camera_metadata_enum_android_noise_reduction_mode>& noiseReductionModes); // See NOISE_REDUCTION_MODE in CaptureRequest.java. MetadataBuilder& setNoiseReductionMode( camera_metadata_enum_android_noise_reduction_mode noiseReductionMode); // See REQUEST_PARTIAL_RESULT_COUNT in CameraCharacteristics.java. MetadataBuilder& setRequestPartialResultCount(int partialResultCount); Loading