-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[camera_android] Don't override default fps range when not recording #8891
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
Conversation
Left one concern on this approach in flutter/flutter#165491; otherwise, I'm ok moving forward! |
@@ -1,3 +1,7 @@ | |||
## 0.10.10+2 | |||
|
|||
* Don't set the FPS range unless video recording. It can cause dark image previews on some devices becuse the auto exposure algorithm is more constrained after fixing a min & max FPS value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you update this description to include the behavior change to users of this plugin that rely on the defaults? (even if that is no impact)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@reidbaker Would this be more clear?
Don't set the FPS range unless video recording. It can cause dark image previews on some devices becuse the auto exposure algorithm is more constrained after fixing the min/max FPS range to the same value. This change has the side effect that providing the fps
parameter will not affect the camera preview when not video recording. And if you need a lower frame rate in your image streaming handler, you can skip frames by checking the time it passed since the last frame.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That looks great.
This comment was marked as outdated.
This comment was marked as outdated.
autosubmit label was removed for flutter/packages/8891, because - The status or check suite Linux_android android_device_tests_shard_1 master has failed. Please fix the issues identified (or deflake) before re-applying this label. |
This comment was marked as outdated.
This comment was marked as outdated.
@jesswrd Can the autosubmit label be added again? It was removed because of a timeout on firebase test lab, but it succeeded after a few merges |
…lutter#8891) In production I have an app using the `camera_android` plugin that just uses the frame streaming feature. I've been pinning version `0.10.8+18` for a while because we found an issue after updating to `0.10.9`. Some users reported a dark camera preview. After some investigation, I believe the issue is because of the call to `this.cameraFeatures.setFpsRange` in the `Camera` constructor. That is the only difference in behavior that .9 and .8+18 have. Fixes flutter/flutter#165491 From the linked issue I went with the second possible fix. Would that be a good approach? Or should the fps setting also apply to the camera streaming and preview? cc @camsim99 ## Pre-Review Checklist [^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.
flutter/packages@125c117...07496eb 2025-04-02 alexander.irion@siemens.com [multicast_dns] MDnsClient::listen supports onError callback (flutter/packages#8888) 2025-04-02 15619084+vashworth@users.noreply.github.com Upgrade tests to use Xcode 16 and iOS 18 (flutter/packages#8968) 2025-04-01 engine-flutter-autoroll@skia.org Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) (flutter/packages#8960) 2025-04-01 kevmoo@users.noreply.github.com Drop deprecated HTML head meta tags (flutter/packages#8970) 2025-04-01 stuartmorgan@google.com Adjust PR checklist formatter discussion (flutter/packages#8924) 2025-04-01 stuartmorgan@google.com Update CODEOWNERS username (flutter/packages#8933) 2025-04-01 69054810+M97Chahboun@users.noreply.github.com [flutter_markdown] Added sizedImageBuilder to Markdown widget (flutter/packages#6739) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip impl copy of iOS tests (flutter/packages#8975) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip more hanging iOS tests (flutter/packages#8967) 2025-04-01 stanleycocoa@gmail.com [url_launcher] When not fully loaded, clicking close causes the callback to not be triggered correctly. (flutter/packages#8582) 2025-04-01 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 2 (flutter/packages#8892) 2025-03-31 15619084+vashworth@users.noreply.github.com [webview_flutter] Skip flaky legacy tests on iOS (flutter/packages#8911) 2025-03-31 davidmartos96@gmail.com [camera_android] Don't override default fps range when not recording (flutter/packages#8891) 2025-03-31 filiph@users.noreply.github.com [google_maps_flutter] Fix typo and remove duplicitous CHANGELOG entry (flutter/packages#8754) 2025-03-31 kevmoo@users.noreply.github.com [extension_gsi] Support the latest version of googleapis_auth (flutter/packages#8931) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/test_plugin/android (flutter/packages#8955) 2025-03-31 linxunfeng@yeah.net [webview_flutter_wkwebview] Fixes crash when sending undefined message via javascript channel (flutter/packages#8776) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/alternate_language_test_plugin/android (flutter/packages#8946) 2025-03-31 10687576+bparrishMines@users.noreply.github.com [interactive_media_ads] Fixes `AdEventType`s not triggering on iOS in release mode (flutter/packages#8918) 2025-03-31 stuartmorgan@google.com [google_maps_flutter] Skip test that hangs iOS CI (flutter/packages#8958) 2025-03-28 engine-flutter-autoroll@skia.org Manual roll Flutter from b16430b to 1d954f4 (114 revisions) (flutter/packages#8922) 2025-03-28 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 3 (flutter/packages#8912) 2025-03-27 jacksongardner@google.com Use a more deterministic way of waiting for ad widgets to be ready. (flutter/packages#8920) 2025-03-27 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 1 (flutter/packages#8890) 2025-03-27 tarrinneal@gmail.com [pigeon] correct usage of extended generics in generator methods (flutter/packages#8910) 2025-03-27 34892635+fa0311@users.noreply.github.com [video_player] Fix layout issue caused by `Transform.rotate` not affecting space calculation. (flutter/packages#8685) 2025-03-27 43759233+kenzieschmoll@users.noreply.github.com [shared_preferences] Fix a late initialized error with the example app (flutter/packages#8540) 2025-03-26 stuartmorgan@google.com [various] Disable sandbox in Chrome dart tests (flutter/packages#8909) 2025-03-25 stuartmorgan@google.com [tool] Move changed file detection to base command class (flutter/packages#8730) 2025-03-25 34327253+lenzpaul@users.noreply.github.com [Camera] Add lens type information (iOS) (flutter/packages#8723) 2025-03-25 tarrinneal@gmail.com [pigeon] kotlin equality methods (flutter/packages#8887) 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 --------- Co-authored-by: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com>
flutter/packages@125c117...07496eb 2025-04-02 alexander.irion@siemens.com [multicast_dns] MDnsClient::listen supports onError callback (flutter/packages#8888) 2025-04-02 15619084+vashworth@users.noreply.github.com Upgrade tests to use Xcode 16 and iOS 18 (flutter/packages#8968) 2025-04-01 engine-flutter-autoroll@skia.org Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) (flutter/packages#8960) 2025-04-01 kevmoo@users.noreply.github.com Drop deprecated HTML head meta tags (flutter/packages#8970) 2025-04-01 stuartmorgan@google.com Adjust PR checklist formatter discussion (flutter/packages#8924) 2025-04-01 stuartmorgan@google.com Update CODEOWNERS username (flutter/packages#8933) 2025-04-01 69054810+M97Chahboun@users.noreply.github.com [flutter_markdown] Added sizedImageBuilder to Markdown widget (flutter/packages#6739) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip impl copy of iOS tests (flutter/packages#8975) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip more hanging iOS tests (flutter/packages#8967) 2025-04-01 stanleycocoa@gmail.com [url_launcher] When not fully loaded, clicking close causes the callback to not be triggered correctly. (flutter/packages#8582) 2025-04-01 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 2 (flutter/packages#8892) 2025-03-31 15619084+vashworth@users.noreply.github.com [webview_flutter] Skip flaky legacy tests on iOS (flutter/packages#8911) 2025-03-31 davidmartos96@gmail.com [camera_android] Don't override default fps range when not recording (flutter/packages#8891) 2025-03-31 filiph@users.noreply.github.com [google_maps_flutter] Fix typo and remove duplicitous CHANGELOG entry (flutter/packages#8754) 2025-03-31 kevmoo@users.noreply.github.com [extension_gsi] Support the latest version of googleapis_auth (flutter/packages#8931) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/test_plugin/android (flutter/packages#8955) 2025-03-31 linxunfeng@yeah.net [webview_flutter_wkwebview] Fixes crash when sending undefined message via javascript channel (flutter/packages#8776) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/alternate_language_test_plugin/android (flutter/packages#8946) 2025-03-31 10687576+bparrishMines@users.noreply.github.com [interactive_media_ads] Fixes `AdEventType`s not triggering on iOS in release mode (flutter/packages#8918) 2025-03-31 stuartmorgan@google.com [google_maps_flutter] Skip test that hangs iOS CI (flutter/packages#8958) 2025-03-28 engine-flutter-autoroll@skia.org Manual roll Flutter from b16430b to 1d954f4 (114 revisions) (flutter/packages#8922) 2025-03-28 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 3 (flutter/packages#8912) 2025-03-27 jacksongardner@google.com Use a more deterministic way of waiting for ad widgets to be ready. (flutter/packages#8920) 2025-03-27 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 1 (flutter/packages#8890) 2025-03-27 tarrinneal@gmail.com [pigeon] correct usage of extended generics in generator methods (flutter/packages#8910) 2025-03-27 34892635+fa0311@users.noreply.github.com [video_player] Fix layout issue caused by `Transform.rotate` not affecting space calculation. (flutter/packages#8685) 2025-03-27 43759233+kenzieschmoll@users.noreply.github.com [shared_preferences] Fix a late initialized error with the example app (flutter/packages#8540) 2025-03-26 stuartmorgan@google.com [various] Disable sandbox in Chrome dart tests (flutter/packages#8909) 2025-03-25 stuartmorgan@google.com [tool] Move changed file detection to base command class (flutter/packages#8730) 2025-03-25 34327253+lenzpaul@users.noreply.github.com [Camera] Add lens type information (iOS) (flutter/packages#8723) 2025-03-25 tarrinneal@gmail.com [pigeon] kotlin equality methods (flutter/packages#8887) 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 --------- Co-authored-by: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com>
…lutter#8891) In production I have an app using the `camera_android` plugin that just uses the frame streaming feature. I've been pinning version `0.10.8+18` for a while because we found an issue after updating to `0.10.9`. Some users reported a dark camera preview. After some investigation, I believe the issue is because of the call to `this.cameraFeatures.setFpsRange` in the `Camera` constructor. That is the only difference in behavior that .9 and .8+18 have. Fixes flutter/flutter#165491 From the linked issue I went with the second possible fix. Would that be a good approach? Or should the fps setting also apply to the camera streaming and preview? cc @camsim99 ## Pre-Review Checklist [^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.
…er#166457) flutter/packages@125c117...07496eb 2025-04-02 alexander.irion@siemens.com [multicast_dns] MDnsClient::listen supports onError callback (flutter/packages#8888) 2025-04-02 15619084+vashworth@users.noreply.github.com Upgrade tests to use Xcode 16 and iOS 18 (flutter/packages#8968) 2025-04-01 engine-flutter-autoroll@skia.org Manual roll Flutter from 1d954f4 to 05b5e79 (225 revisions) (flutter/packages#8960) 2025-04-01 kevmoo@users.noreply.github.com Drop deprecated HTML head meta tags (flutter/packages#8970) 2025-04-01 stuartmorgan@google.com Adjust PR checklist formatter discussion (flutter/packages#8924) 2025-04-01 stuartmorgan@google.com Update CODEOWNERS username (flutter/packages#8933) 2025-04-01 69054810+M97Chahboun@users.noreply.github.com [flutter_markdown] Added sizedImageBuilder to Markdown widget (flutter/packages#6739) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip impl copy of iOS tests (flutter/packages#8975) 2025-04-01 stuartmorgan@google.com [google_maps_flutter] Skip more hanging iOS tests (flutter/packages#8967) 2025-04-01 stanleycocoa@gmail.com [url_launcher] When not fully loaded, clicking close causes the callback to not be triggered correctly. (flutter/packages#8582) 2025-04-01 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 2 (flutter/packages#8892) 2025-03-31 15619084+vashworth@users.noreply.github.com [webview_flutter] Skip flaky legacy tests on iOS (flutter/packages#8911) 2025-03-31 davidmartos96@gmail.com [camera_android] Don't override default fps range when not recording (flutter/packages#8891) 2025-03-31 filiph@users.noreply.github.com [google_maps_flutter] Fix typo and remove duplicitous CHANGELOG entry (flutter/packages#8754) 2025-03-31 kevmoo@users.noreply.github.com [extension_gsi] Support the latest version of googleapis_auth (flutter/packages#8931) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/test_plugin/android (flutter/packages#8955) 2025-03-31 linxunfeng@yeah.net [webview_flutter_wkwebview] Fixes crash when sending undefined message via javascript channel (flutter/packages#8776) 2025-03-31 49699333+dependabot[bot]@users.noreply.github.com [dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in /packages/pigeon/platform_tests/alternate_language_test_plugin/android (flutter/packages#8946) 2025-03-31 10687576+bparrishMines@users.noreply.github.com [interactive_media_ads] Fixes `AdEventType`s not triggering on iOS in release mode (flutter/packages#8918) 2025-03-31 stuartmorgan@google.com [google_maps_flutter] Skip test that hangs iOS CI (flutter/packages#8958) 2025-03-28 engine-flutter-autoroll@skia.org Manual roll Flutter from b16430b to 1d954f4 (114 revisions) (flutter/packages#8922) 2025-03-28 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 3 (flutter/packages#8912) 2025-03-27 jacksongardner@google.com Use a more deterministic way of waiting for ad widgets to be ready. (flutter/packages#8920) 2025-03-27 robert.odrowaz@leancode.pl [camera_avfoundation] Test utils and mocks swift migration - part 1 (flutter/packages#8890) 2025-03-27 tarrinneal@gmail.com [pigeon] correct usage of extended generics in generator methods (flutter/packages#8910) 2025-03-27 34892635+fa0311@users.noreply.github.com [video_player] Fix layout issue caused by `Transform.rotate` not affecting space calculation. (flutter/packages#8685) 2025-03-27 43759233+kenzieschmoll@users.noreply.github.com [shared_preferences] Fix a late initialized error with the example app (flutter/packages#8540) 2025-03-26 stuartmorgan@google.com [various] Disable sandbox in Chrome dart tests (flutter/packages#8909) 2025-03-25 stuartmorgan@google.com [tool] Move changed file detection to base command class (flutter/packages#8730) 2025-03-25 34327253+lenzpaul@users.noreply.github.com [Camera] Add lens type information (iOS) (flutter/packages#8723) 2025-03-25 tarrinneal@gmail.com [pigeon] kotlin equality methods (flutter/packages#8887) 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 --------- Co-authored-by: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com>
…lutter#8891) In production I have an app using the `camera_android` plugin that just uses the frame streaming feature. I've been pinning version `0.10.8+18` for a while because we found an issue after updating to `0.10.9`. Some users reported a dark camera preview. After some investigation, I believe the issue is because of the call to `this.cameraFeatures.setFpsRange` in the `Camera` constructor. That is the only difference in behavior that .9 and .8+18 have. Fixes flutter/flutter#165491 From the linked issue I went with the second possible fix. Would that be a good approach? Or should the fps setting also apply to the camera streaming and preview? cc @camsim99 ## Pre-Review Checklist [^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.
In production I have an app using the
camera_android
plugin that just uses the frame streaming feature. I've been pinning version0.10.8+18
for a while because we found an issue after updating to0.10.9
. Some users reported a dark camera preview.After some investigation, I believe the issue is because of the call to
this.cameraFeatures.setFpsRange
in theCamera
constructor. That is the only difference in behavior that .9 and .8+18 have.Fixes flutter/flutter#165491
From the linked issue I went with the second possible fix. Would that be a good approach?
Or should the fps setting also apply to the camera streaming and preview?
cc @camsim99
Pre-Review Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2 ↩3