Skip to content

[camera_android_camerax] Adds support for video stabilization - #11020

Merged
auto-submit[bot] merged 1 commit into
flutter:mainfrom
ruicraveiro:camera_android_video_stabilization
Feb 17, 2026
Merged

[camera_android_camerax] Adds support for video stabilization#11020
auto-submit[bot] merged 1 commit into
flutter:mainfrom
ruicraveiro:camera_android_video_stabilization

Conversation

@ruicraveiro

Copy link
Copy Markdown
Contributor

Implements getSupportedVideoStabilizationModes() and setVideoStabilizationMode() methods in AndroidCameraCameraX.

Address issue flutter/flutter#89525.
It is the camera_android_camerax sub-PR for #7108.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 23

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for video stabilization to the camera_android_camerax plugin. It introduces getSupportedVideoStabilizationModes() and setVideoStabilizationMode() methods. The implementation leverages CameraX's CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES and CONTROL_VIDEO_STABILIZATION_MODE characteristics. The supported modes are currently mapped to off and level1 (for ON). The changes include updates to Pigeon definitions, native Java/Kotlin code, Dart implementation, and tests to verify the new functionality.

Comment threadpackages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart Outdated
@ruicraveiro
ruicraveiroforce-pushed the camera_android_video_stabilization branch 2 times, most recently from 2acd59c to 86b3804CompareFebruary 14, 2026 12:01

@camsim99camsim99 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM just two nits!

Comment threadpackages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart Outdated
Comment threadpackages/camera/camera_android_camerax/CHANGELOG.md Outdated
@camsim99
camsim99 requested a review from a teamFebruary 17, 2026 18:56
@camsim99camsim99 added the triage-android Should be looked at in Android triage label Feb 17, 2026
@ruicraveiro
ruicraveiroforce-pushed the camera_android_video_stabilization branch from 86b3804 to 4929f83CompareFebruary 17, 2026 19:12
- Implements getSupportedVideoStabilizationModes() and
setVideoStabilizationMode() methods in AndroidCameraCameraX.
@ruicraveiro
ruicraveiroforce-pushed the camera_android_video_stabilization branch from 4929f83 to 81faa7aCompareFebruary 17, 2026 19:23
@reidbakerreidbaker added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 17, 2026
@auto-submit
auto-submitBot merged commit 86c0cea into flutter:mainFeb 17, 2026
80 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 18, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 18, 2026
github-merge-queueBot pushed a commit to flutter/flutter that referenced this pull request Feb 18, 2026
flutter/packages@f83926f...59f905c
2026-02-18 52160996+FMorschel@users.noreply.github.com
[camera][google_fonts] Fixes future warning for `await`ing `Future`
returns in `async` bodies inside `try` blocks (flutter/packages#11009)
2026-02-18 robert.odrowaz@leancode.pl [camera_avfoundation] Pigeon swift
migration - part 2 (flutter/packages#10980)
2026-02-17 8490712+ruicraveiro@users.noreply.github.com
[camera_android_camerax] Adds support for video stabilization
(flutter/packages#11020)
2026-02-17 nateshmbhat1@gmail.com [video_player] Adds audio track
metadata fetching and audio track selection feature
(flutter/packages#9925)
2026-02-17 stuartmorgan@google.com [video_player] Update Android to
exoplayer 1.9.1 (flutter/packages#10904)
2026-02-17 joonas.kerttula@codemate.com [google_maps_flutter_android]
Add advanced markers support (flutter/packages#10381)
2026-02-17 stuartmorgan@google.com [google_maps_flutter] Standardize iOS
class and file names (flutter/packages#10964)
2026-02-17 stuartmorgan@google.com [google_sign_in] Simply Kotlin/Java
interop utils (flutter/packages#11011)
2026-02-17 engine-flutter-autoroll@skia.org Roll Flutter from
9bda20a to 6e4a481 (103 revisions) (flutter/packages#11041)
2026-02-17 stuartmorgan@google.com [ci] Update repo for 3.41
(flutter/packages#11017)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
rickhohler pushed a commit to rickhohler/flutter that referenced this pull request Feb 19, 2026
…er#182547)
flutter/packages@f83926f...59f905c
2026-02-18 52160996+FMorschel@users.noreply.github.com
[camera][google_fonts] Fixes future warning for `await`ing `Future`
returns in `async` bodies inside `try` blocks (flutter/packages#11009)
2026-02-18 robert.odrowaz@leancode.pl [camera_avfoundation] Pigeon swift
migration - part 2 (flutter/packages#10980)
2026-02-17 8490712+ruicraveiro@users.noreply.github.com
[camera_android_camerax] Adds support for video stabilization
(flutter/packages#11020)
2026-02-17 nateshmbhat1@gmail.com [video_player] Adds audio track
metadata fetching and audio track selection feature
(flutter/packages#9925)
2026-02-17 stuartmorgan@google.com [video_player] Update Android to
exoplayer 1.9.1 (flutter/packages#10904)
2026-02-17 joonas.kerttula@codemate.com [google_maps_flutter_android]
Add advanced markers support (flutter/packages#10381)
2026-02-17 stuartmorgan@google.com [google_maps_flutter] Standardize iOS
class and file names (flutter/packages#10964)
2026-02-17 stuartmorgan@google.com [google_sign_in] Simply Kotlin/Java
interop utils (flutter/packages#11011)
2026-02-17 engine-flutter-autoroll@skia.org Roll Flutter from
9bda20a to 6e4a481 (103 revisions) (flutter/packages#11041)
2026-02-17 stuartmorgan@google.com [ci] Update repo for 3.41
(flutter/packages#11017)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
ahmedsameha1 pushed a commit to ahmedsameha1/flutter that referenced this pull request Feb 27, 2026
…er#182547)
flutter/packages@f83926f...59f905c
2026-02-18 52160996+FMorschel@users.noreply.github.com
[camera][google_fonts] Fixes future warning for `await`ing `Future`
returns in `async` bodies inside `try` blocks (flutter/packages#11009)
2026-02-18 robert.odrowaz@leancode.pl [camera_avfoundation] Pigeon swift
migration - part 2 (flutter/packages#10980)
2026-02-17 8490712+ruicraveiro@users.noreply.github.com
[camera_android_camerax] Adds support for video stabilization
(flutter/packages#11020)
2026-02-17 nateshmbhat1@gmail.com [video_player] Adds audio track
metadata fetching and audio track selection feature
(flutter/packages#9925)
2026-02-17 stuartmorgan@google.com [video_player] Update Android to
exoplayer 1.9.1 (flutter/packages#10904)
2026-02-17 joonas.kerttula@codemate.com [google_maps_flutter_android]
Add advanced markers support (flutter/packages#10381)
2026-02-17 stuartmorgan@google.com [google_maps_flutter] Standardize iOS
class and file names (flutter/packages#10964)
2026-02-17 stuartmorgan@google.com [google_sign_in] Simply Kotlin/Java
interop utils (flutter/packages#11011)
2026-02-17 engine-flutter-autoroll@skia.org Roll Flutter from
9bda20a to 6e4a481 (103 revisions) (flutter/packages#11041)
2026-02-17 stuartmorgan@google.com [ci] Update repo for 3.41
(flutter/packages#11017)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
okorohelijah pushed a commit to okorohelijah/packages that referenced this pull request Mar 26, 2026
…r#11020)
Implements getSupportedVideoStabilizationModes() and setVideoStabilizationMode() methods in AndroidCameraCameraX.
Address issue flutter/flutter#89525.
It is the camera_android_camerax sub-PR for flutter#7108.
## Pre-Review Checklist
**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
mboetger pushed a commit to mboetger/flutter that referenced this pull request Mar 26, 2026
…er#182547)
flutter/packages@f83926f...59f905c
2026-02-18 52160996+FMorschel@users.noreply.github.com
[camera][google_fonts] Fixes future warning for `await`ing `Future`
returns in `async` bodies inside `try` blocks (flutter/packages#11009)
2026-02-18 robert.odrowaz@leancode.pl [camera_avfoundation] Pigeon swift
migration - part 2 (flutter/packages#10980)
2026-02-17 8490712+ruicraveiro@users.noreply.github.com
[camera_android_camerax] Adds support for video stabilization
(flutter/packages#11020)
2026-02-17 nateshmbhat1@gmail.com [video_player] Adds audio track
metadata fetching and audio track selection feature
(flutter/packages#9925)
2026-02-17 stuartmorgan@google.com [video_player] Update Android to
exoplayer 1.9.1 (flutter/packages#10904)
2026-02-17 joonas.kerttula@codemate.com [google_maps_flutter_android]
Add advanced markers support (flutter/packages#10381)
2026-02-17 stuartmorgan@google.com [google_maps_flutter] Standardize iOS
class and file names (flutter/packages#10964)
2026-02-17 stuartmorgan@google.com [google_sign_in] Simply Kotlin/Java
interop utils (flutter/packages#11011)
2026-02-17 engine-flutter-autoroll@skia.org Roll Flutter from
9bda20a to 6e4a481 (103 revisions) (flutter/packages#11041)
2026-02-17 stuartmorgan@google.com [ci] Update repo for 3.41
(flutter/packages#11017)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11020)
Implements getSupportedVideoStabilizationModes() and setVideoStabilizationMode() methods in AndroidCameraCameraX.
Address issue flutter/flutter#89525.
It is the camera_android_camerax sub-PR for flutter#7108.
## Pre-Review Checklist
**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.
[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmitMerge PR when tree becomes green via auto submit Appp: cameraplatform-androidtriage-androidShould be looked at in Android triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ruicraveiro@reidbaker@camsim99