Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[camerax] Implement exposure mode configuration #120468

Closed
6 tasks done
camsim99 opened this issue Feb 10, 2023 · 1 comment · Fixed by flutter/packages#6110
Closed
6 tasks done

[camerax] Implement exposure mode configuration #120468

camsim99 opened this issue Feb 10, 2023 · 1 comment · Fixed by flutter/packages#6110
Assignees
Labels
c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter p: camera The camera plugin P1 High-priority issues at the top of the work list package flutter/packages repository. See also p: labels. platform-android Android applications specifically team-android Owned by Android platform team triaged-android Triaged by Android platform team

Comments

@camsim99
Copy link
Contributor

camsim99 commented Feb 10, 2023

In the camera plugin, there are a number of methods related to retrieving information about the exposure mode and its configuration. These must be implemented in the CameraX plugin, as well:

  • setExposureMode(...)
  • setExposurePoint(...)
  • getMinExposureOffset(...)
  • getMaxExposureOffset(...)
  • getExposureOffsetStepSize(...)
  • setExposureOffset(...)
@camsim99 camsim99 added c: new feature Nothing broken; request for a new capability platform-android Android applications specifically plugin p: camera The camera plugin c: proposal A detailed proposal for a change to Flutter P2 Important issues not at the top of the work list labels Feb 10, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this issue May 1, 2023
Implements retrieval of exposure and zoom camera information. Specifically, implements the following:

- `getMinExposureOffset()`
- `getMaxExposureOffset()`
- `getExposureOffsetStepSize()`
- `getMaxZoomLevel()`
- `getMinZoomLevel()`

Part of flutter/flutter#115846.
Part of flutter/flutter#125371.
Part of flutter/flutter#120468.
@flutter-triage-bot flutter-triage-bot bot added the package flutter/packages repository. See also p: labels. label Jul 5, 2023
@Hixie Hixie removed the plugin label Jul 6, 2023
@flutter-triage-bot flutter-triage-bot bot added multiteam-retriage-candidate team-android Owned by Android platform team triaged-android Triaged by Android platform team labels Jul 8, 2023
nploi pushed a commit to nploi/packages that referenced this issue Jul 16, 2023
Implements retrieval of exposure and zoom camera information. Specifically, implements the following:

- `getMinExposureOffset()`
- `getMaxExposureOffset()`
- `getExposureOffsetStepSize()`
- `getMaxZoomLevel()`
- `getMinZoomLevel()`

Part of flutter/flutter#115846.
Part of flutter/flutter#125371.
Part of flutter/flutter#120468.
@camsim99 camsim99 moved this from To do to In progress in Android Camera Re-write Dec 13, 2023
@camsim99 camsim99 self-assigned this Dec 13, 2023
@camsim99 camsim99 added P1 High-priority issues at the top of the work list and removed P2 Important issues not at the top of the work list labels Jan 2, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this issue Jan 24, 2024
…ing focus & exposure points and offset (#5659)

Wraps CameraX APIs needed to at least implement setting focus and exposure points and offset (`setFocusPoint`,`setExposurePoint`, `setExposureOffset`). Listed by class:

`CameraControl`
- [`startFocusAndMetering`](https://developer.android.com/reference/androidx/camera/core/CameraControl#startFocusAndMetering(androidx.camera.core.FocusMeteringAction))
- [`cancelFocusAndMetering`](https://developer.android.com/reference/androidx/camera/core/CameraControl#cancelFocusAndMetering())
- [`setExposureCompensationIndex`](https://developer.android.com/reference/androidx/camera/core/CameraControl#setExposureCompensationIndex(int))

`FocusMeteringAction`
- `create` method for [this class](https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction.Builder#Builder(androidx.camera.core.MeteringPoint,int))

`FocusMeteringResult`
- `create` method for [this class](https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult)
- [`isFocusSuccessful`](https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringResult#isFocusSuccessful())

`MeteringPoint`
- `create` method for the points that [`SurfaceOrientedMeteringPointFactory`](https://developer.android.com/reference/androidx/camera/core/SurfaceOrientedMeteringPointFactory) creates
- [`getDefaultPointSize`](https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory#getDefaultPointSize())

Part of flutter/flutter#120468 and flutter/flutter#120467.
auto-submit bot pushed a commit to flutter/packages that referenced this issue Feb 5, 2024
…ode (#5966)

Wraps classes/methods needed to set capture request options that will allow us to implement setting the exposure mode, namely:

**Camera2CameraControl**

- `create` method using [`from`](https://developer.android.com/reference/androidx/camera/camera2/interop/Camera2CameraControl#from(androidx.camera.core.CameraControl))
- [`setCaptureRequestOptions`](https://developer.android.com/reference/androidx/camera/camera2/interop/Camera2CameraControl#setCaptureRequestOptions(androidx.camera.camera2.interop.CaptureRequestOptions))

**CaptureRequestOptions**

- `create` method using its [builder](https://developer.android.com/reference/androidx/camera/camera2/interop/CaptureRequestOptions.Builder)*

Part of flutter/flutter#120468.

*Note that this required that I specify types of supported capture request options due to the Dart/native split. I took inspiration from our previous implementation of supported `LiveData` types (see [pigeon file](https://github.com/flutter/packages/blob/73c9bdc59b8d51ee558bff113bcdcdb53485cd08/packages/camera/camera_android_camerax/pigeons/camerax_library.dart#L80) for details).
auto-submit bot pushed a commit to flutter/packages that referenced this issue Feb 21, 2024
…eOffset` (#6059)

This PR implements `setFocusPoint`, `setExposurePoint`, `setExposureOffset` and makes some small fixes here and there, each of which I have left a comment about for context.

Part of flutter/flutter#120468 & flutter/flutter#120467.

~NOTE: Should land after #6068 done :)
auto-submit bot pushed a commit to flutter/packages that referenced this issue Feb 27, 2024
Implements `setExposureMode`.

Fixes flutter/flutter#120468.

~To be landed after (1) #6059 then (2) #6109 Done :)
@camsim99 camsim99 moved this from In progress to Done in Android Camera Re-write Feb 27, 2024
LouiseHsu pushed a commit to LouiseHsu/packages that referenced this issue Mar 7, 2024
Implements `setExposureMode`.

Fixes flutter/flutter#120468.

~To be landed after (1) flutter#6059 then (2) flutter#6109 Done :)
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter p: camera The camera plugin P1 High-priority issues at the top of the work list package flutter/packages repository. See also p: labels. platform-android Android applications specifically team-android Owned by Android platform team triaged-android Triaged by Android platform team
Development

Successfully merging a pull request may close this issue.

3 participants