Merge 25Q1 (ab/BP1A.250305.020) to AOSP main Bug: 385190204 Merged-In: I8798672064a2b0a3e811e6ca55e3662f48915eef Change-Id: Ifa7f735b58e19bbb235b7dc37989e843f5e99a31
diff --git a/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/BaseAdvancedExtenderImpl.java b/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/BaseAdvancedExtenderImpl.java index 1b61d93..a090d7d 100644 --- a/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/BaseAdvancedExtenderImpl.java +++ b/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/BaseAdvancedExtenderImpl.java
@@ -127,7 +127,7 @@ @Override public Map<Integer, List<Size>> getSupportedCaptureOutputResolutions(String cameraId) { return filterOutputResolutions(Arrays.asList(ImageFormat.JPEG, ImageFormat.YUV_420_888, - ImageFormat.JPEG_R, ImageFormat.YCBCR_P010)); + ImageFormat.DEPTH_JPEG, ImageFormat.JPEG_R, ImageFormat.YCBCR_P010)); } @Override @@ -223,8 +223,9 @@ // Image Capture if (mCaptureOutputSurfaceConfig.getSurface() != null) { - // For this sample, JPEG_R or YCBCR_P010 will not be processed - if (isJpegR(mCaptureOutputSurfaceConfig)) { + // For this sample, DEPTH_JPEG, JPEG_R or YCBCR_P010 will not be processed + if (isJpegR(mCaptureOutputSurfaceConfig) || + isDepthJpeg(mCaptureOutputSurfaceConfig)) { Camera2OutputConfigImplBuilder captureOutputConfigBuilder; captureOutputConfigBuilder = @@ -353,6 +354,14 @@ (surfaceConfig.getImageFormat() == ImageFormat.JPEG_R); } + protected boolean isDepthJpeg(OutputSurfaceImpl surfaceConfig) { + // The surface configuration format for DepthJpeg can be specified in either format. + // Camera2 uses HAL_PIXEL_FORMAT_BLOB and CameraX uses ImageFormat.DEPTH_JPEG. + return ((surfaceConfig.getImageFormat() == JpegEncoder.HAL_PIXEL_FORMAT_BLOB) && + (surfaceConfig.getDataspace() == DataSpace.DATASPACE_DYNAMIC_DEPTH)) || + (surfaceConfig.getImageFormat() == ImageFormat.DEPTH_JPEG); + } + protected boolean isJpeg(OutputSurfaceImpl surfaceConfig) { return (JpegEncoder.imageFormatToPublic(surfaceConfig.getImageFormat()) == ImageFormat.JPEG) || (surfaceConfig.getImageFormat() == ImageFormat.JPEG);
diff --git a/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/NightAdvancedExtenderImpl.java b/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/NightAdvancedExtenderImpl.java index 86ea363..f3a27eb 100644 --- a/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/NightAdvancedExtenderImpl.java +++ b/camera2/extensions/advancedSample/src/java/androidx/camera/extensions/impl/advanced/NightAdvancedExtenderImpl.java
@@ -131,8 +131,9 @@ // Image Capture if (mCaptureOutputSurfaceConfig.getSurface() != null) { - // For this sample, JPEG_R or YCBCR_P010 will not be processed - if (isJpegR(mCaptureOutputSurfaceConfig)) { + // For this sample, DEPTH_JPEG, JPEG_R or YCBCR_P010 will not be processed + if (isJpegR(mCaptureOutputSurfaceConfig) || + isDepthJpeg(mCaptureOutputSurfaceConfig)) { Camera2OutputConfigImplBuilder captureOutputConfigBuilder; captureOutputConfigBuilder =