Status Update
Comments
sc...@google.com <sc...@google.com>
sc...@google.com <sc...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
Author: Scott Nien <
Link:
Fix the issue that PreviewViewMeteringPointFactory produces wrong coordinates when effect or stream sharing is enabled.
Expand for full commit details
Fix the issue that PreviewViewMeteringPointFactory produces wrong coordinates when effect or stream sharing is enabled.
The PreviewviewMeteringPointFactory uses the PreviewRotationDegrees to transform the
coordinates. This PreviewRotationDegrees in TransformationInfo does't
reflect the sensor_orientation and the display orientation when effect
or stream sharing is enabled.
Solution :
Use getSensorToBufferTransform from TransmationInfo instead to convert the view(x,y)
to sensor (x,y) and also set the surfaceAspectRatio as the sensor size.
Bug: 345993685
RelNote: "Fixed the issue where invoking startFocusMetering with
PreviewView.getMeteringPointFactory does't get the correct sensor
coordinates when an effect is enabled or when 4 use cases are bound
(stream-sharing)."
Test: All tests in camera-view
Change-Id: I916c55d371a2c2e7de798b21080318591f099561
Files:
- M
camera/camera-core/src/main/java/androidx/camera/core/MeteringPointFactory.java
- M
camera/camera-core/src/main/java/androidx/camera/core/internal/CameraUseCaseAdapter.java
- M
camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewMeteringPointFactoryDeviceTest.kt
- M
camera/camera-view/src/main/java/androidx/camera/view/PreviewTransformation.java
- M
camera/camera-view/src/main/java/androidx/camera/view/PreviewView.java
- M
camera/camera-view/src/main/java/androidx/camera/view/PreviewViewMeteringPointFactory.java
- M
camera/camera-view/src/test/java/androidx/camera/view/PreviewViewMeteringPointFactoryTest.java
Hash: 4099c75fbc3979a18c18f435fbf508ffdd4c7ab1
Date: Fri Sep 27 14:17:44 2024
sc...@google.com <sc...@google.com> #3
The issue is fixed and the fix will be included in 1.4.0-rc04 and 1.4.0 stable release as well as the new alpha in 1.5.0. Thanks for reporting this issue and I am sorry for not fixing it promptly.
na...@google.com <na...@google.com> #4
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-core:1.4.0-rc04
androidx.camera:camera-view:1.4.0-rc04
pr...@google.com <pr...@google.com> #5
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.camera:camera-core:1.5.0-alpha03
androidx.camera:camera-view:1.5.0-alpha03
Description
CAMERAX VERSION (ex - 1.4.0-beta01)
ANDROID OS BUILD NUMBER: android 13 DEVICE NAME: Samsung A32 5G
STEPS TO REPRODUCE: 1.setup preview,imagecapture,add overlayEffect to add watermark
2.touch preview to call startFocusAndMetering
3.focus is unexpected, A and B ,touch A region but focus B
4.remove overlayEffect,focus work expected
5.touch focus code like:
、、、
val autoFocusPoint = preview.meteringPointFactory.createPoint(p.x, p.y)
val action = FocusMeteringAction.Builder(autoFocusPoint).build()
cameraControl?.cancelFocusAndMetering()
cameraControl?.startFocusAndMetering(action)
、、、