Skip to content

Commit bad30b0

Browse files
authored
Merge branch 'main' into dependabot/gradle/packages/url_launcher/url_launcher_android/android/androidx.core-core-1.13.1
2 parents d6a75a6 + 69a35b2 commit bad30b0

File tree

212 files changed

+4483
-2086
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+4483
-2086
lines changed

.ci.yaml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ targets:
150150
recipe: packages/packages
151151
timeout: 60
152152
properties:
153-
add_recipes_cq: "true"
154153
target_file: dart_unit_tests.yaml
155154
channel: master
156155
version_file: flutter_master.version
@@ -208,7 +207,6 @@ targets:
208207
recipe: packages/packages
209208
timeout: 60
210209
properties:
211-
add_recipes_cq: "true"
212210
target_file: web_dart_unit_tests.yaml
213211
channel: master
214212
version_file: flutter_master.version
@@ -251,7 +249,6 @@ targets:
251249
recipe: packages/packages
252250
timeout: 30
253251
properties:
254-
add_recipes_cq: "true"
255252
target_file: analyze.yaml
256253
channel: master
257254
version_file: flutter_master.version
@@ -366,7 +363,6 @@ targets:
366363
recipe: packages/packages
367364
timeout: 30
368365
properties:
369-
add_recipes_cq: "true"
370366
version_file: flutter_master.version
371367
target_file: android_build_all_packages.yaml
372368
channel: master
@@ -1055,7 +1051,6 @@ targets:
10551051
recipe: packages/packages
10561052
timeout: 30
10571053
properties:
1058-
add_recipes_cq: "true"
10591054
version_file: flutter_master.version
10601055
target_file: macos_repo_checks.yaml
10611056
dependencies: >
@@ -1070,7 +1065,6 @@ targets:
10701065
recipe: packages/packages
10711066
timeout: 30
10721067
properties:
1073-
add_recipes_cq: "true"
10741068
version_file: flutter_master.version
10751069
target_file: macos_build_all_packages.yaml
10761070
channel: master
@@ -1125,7 +1119,6 @@ targets:
11251119
recipe: packages/packages
11261120
timeout: 60
11271121
properties:
1128-
add_recipes_cq: "true"
11291122
version_file: flutter_master.version
11301123
target_file: macos_custom_package_tests.yaml
11311124
channel: master
@@ -1142,7 +1135,6 @@ targets:
11421135
recipe: packages/packages
11431136
timeout: 60
11441137
properties:
1145-
add_recipes_cq: "true"
11461138
version_file: flutter_stable.version
11471139
target_file: macos_custom_package_tests.yaml
11481140
channel: stable
@@ -1163,7 +1155,6 @@ targets:
11631155
timeout: 30
11641156
properties:
11651157
channel: master
1166-
add_recipes_cq: "true"
11671158
version_file: flutter_master.version
11681159
target_file: ios_build_all_packages.yaml
11691160
env_variables: >-
@@ -1176,7 +1167,6 @@ targets:
11761167
timeout: 30
11771168
properties:
11781169
channel: stable
1179-
add_recipes_cq: "true"
11801170
version_file: flutter_stable.version
11811171
target_file: ios_build_all_packages.yaml
11821172
env_variables: >-
@@ -1204,7 +1194,6 @@ targets:
12041194
timeout: 60
12051195
properties:
12061196
channel: master
1207-
add_recipes_cq: "true"
12081197
version_file: flutter_master.version
12091198
target_file: ios_platform_tests.yaml
12101199
package_sharding: "--shardIndex 1 --shardCount 5"
@@ -1219,7 +1208,6 @@ targets:
12191208
timeout: 60
12201209
properties:
12211210
channel: master
1222-
add_recipes_cq: "true"
12231211
version_file: flutter_master.version
12241212
target_file: ios_platform_tests.yaml
12251213
package_sharding: "--shardIndex 2 --shardCount 5"
@@ -1234,7 +1222,6 @@ targets:
12341222
timeout: 60
12351223
properties:
12361224
channel: master
1237-
add_recipes_cq: "true"
12381225
version_file: flutter_master.version
12391226
target_file: ios_platform_tests.yaml
12401227
package_sharding: "--shardIndex 3 --shardCount 5"
@@ -1249,7 +1236,6 @@ targets:
12491236
timeout: 60
12501237
properties:
12511238
channel: master
1252-
add_recipes_cq: "true"
12531239
version_file: flutter_master.version
12541240
target_file: ios_platform_tests.yaml
12551241
package_sharding: "--shardIndex 4 --shardCount 5"
@@ -1340,7 +1326,6 @@ targets:
13401326
recipe: packages/packages
13411327
timeout: 60
13421328
properties:
1343-
add_recipes_cq: "true"
13441329
target_file: windows_custom_package_tests.yaml
13451330
channel: master
13461331
version_file: flutter_master.version
@@ -1404,7 +1389,6 @@ targets:
14041389
recipe: packages/packages
14051390
timeout: 60
14061391
properties:
1407-
add_recipes_cq: "true"
14081392
target_file: windows_build_and_platform_tests.yaml
14091393
channel: master
14101394
version_file: flutter_master.version
@@ -1423,7 +1407,6 @@ targets:
14231407
recipe: packages/packages
14241408
timeout: 60
14251409
properties:
1426-
add_recipes_cq: "true"
14271410
target_file: windows_build_and_platform_tests.yaml
14281411
channel: stable
14291412
version_file: flutter_stable.version
@@ -1442,7 +1425,6 @@ targets:
14421425
recipe: packages/packages
14431426
timeout: 60
14441427
properties:
1445-
add_recipes_cq: "true"
14461428
target_file: windows_build_and_platform_tests.yaml
14471429
channel: stable
14481430
version_file: flutter_stable.version
@@ -1461,7 +1443,6 @@ targets:
14611443
recipe: packages/packages
14621444
timeout: 30
14631445
properties:
1464-
add_recipes_cq: "true"
14651446
target_file: windows_build_all_packages.yaml
14661447
channel: master
14671448
version_file: flutter_master.version
@@ -1515,7 +1496,6 @@ targets:
15151496
timeout: 30
15161497
bringup: true
15171498
properties:
1518-
add_recipes_cq: "true"
15191499
target_file: windows_build_all_packages.yaml
15201500
channel: stable
15211501
version_file: flutter_stable.version

.ci/flutter_master.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f1037a01b796bbd5e7c2bd6320525fbd47702473
1+
2bfb1b0e2f611173b0712856a42308b4977dc516

packages/camera/camera/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
## NEXT
1+
## 0.10.6
22

3+
* Adds support to control video fps and bitrate. See `CameraController` constructor.
34
* Updates minimum supported SDK version to Flutter 3.13/Dart 3.1.
45
* Updates support matrix in README to indicate that iOS 11 is no longer supported.
56
* Clients on versions of Flutter that still support iOS 11 can continue to use this

packages/camera/camera/lib/src/camera_controller.dart

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -232,12 +232,30 @@ class CameraValue {
232232
/// To show the camera preview on the screen use a [CameraPreview] widget.
233233
class CameraController extends ValueNotifier<CameraValue> {
234234
/// Creates a new camera controller in an uninitialized state.
235+
///
236+
/// - [resolutionPreset] affect the quality of video recording and image capture.
237+
/// - [enableAudio] controls audio presence in recorded video.
238+
///
239+
/// Following parameters (if present) will overwrite [resolutionPreset] settings:
240+
/// - [fps] controls rate at which frames should be captured by the camera in frames per second.
241+
/// - [videoBitrate] controls the video encoding bit rate for recording.
242+
/// - [audioBitrate] controls the audio encoding bit rate for recording.
243+
235244
CameraController(
236245
CameraDescription description,
237-
this.resolutionPreset, {
238-
this.enableAudio = true,
246+
ResolutionPreset resolutionPreset, {
247+
bool enableAudio = true,
248+
int? fps,
249+
int? videoBitrate,
250+
int? audioBitrate,
239251
this.imageFormatGroup,
240-
}) : super(CameraValue.uninitialized(description));
252+
}) : mediaSettings = MediaSettings(
253+
resolutionPreset: resolutionPreset,
254+
enableAudio: enableAudio,
255+
fps: fps,
256+
videoBitrate: videoBitrate,
257+
audioBitrate: audioBitrate),
258+
super(CameraValue.uninitialized(description));
241259

242260
/// The properties of the camera device controlled by this controller.
243261
CameraDescription get description => value.description;
@@ -248,10 +266,19 @@ class CameraController extends ValueNotifier<CameraValue> {
248266
/// if unavailable a lower resolution will be used.
249267
///
250268
/// See also: [ResolutionPreset].
251-
final ResolutionPreset resolutionPreset;
269+
ResolutionPreset get resolutionPreset =>
270+
mediaSettings.resolutionPreset ?? ResolutionPreset.max;
252271

253272
/// Whether to include audio when recording a video.
254-
final bool enableAudio;
273+
bool get enableAudio => mediaSettings.enableAudio;
274+
275+
/// The media settings this controller is targeting.
276+
///
277+
/// This media settings are not guaranteed to be available on the device,
278+
/// if unavailable a [resolutionPreset] default values will be used.
279+
///
280+
/// See also: [MediaSettings].
281+
final MediaSettings mediaSettings;
255282

256283
/// The [ImageFormatGroup] describes the output of the raw image format.
257284
///
@@ -265,6 +292,7 @@ class CameraController extends ValueNotifier<CameraValue> {
265292

266293
bool _isDisposed = false;
267294
StreamSubscription<CameraImageData>? _imageStreamSubscription;
295+
268296
// A Future awaiting an attempt to initialize (e.g. after `initialize` was
269297
// just called). If the controller has not been initialized at least once,
270298
// this value is null.
@@ -313,10 +341,9 @@ class CameraController extends ValueNotifier<CameraValue> {
313341
);
314342
});
315343

316-
_cameraId = await CameraPlatform.instance.createCamera(
344+
_cameraId = await CameraPlatform.instance.createCameraWithSettings(
317345
description,
318-
resolutionPreset,
319-
enableAudio: enableAudio,
346+
mediaSettings,
320347
);
321348

322349
_unawaited(CameraPlatform.instance
@@ -372,7 +399,7 @@ class CameraController extends ValueNotifier<CameraValue> {
372399

373400
/// Pauses the current camera preview
374401
Future<void> pausePreview() async {
375-
if (value.isPreviewPaused) {
402+
if (value.isPreviewPaused || !value.isInitialized || _isDisposed) {
376403
return;
377404
}
378405
try {
@@ -923,7 +950,7 @@ class Optional<T> extends IterableBase<T> {
923950
if (_value == null) {
924951
throw StateError('value called on absent Optional.');
925952
}
926-
return _value!;
953+
return _value;
927954
}
928955

929956
/// Executes a function if the Optional value is present.
@@ -960,7 +987,7 @@ class Optional<T> extends IterableBase<T> {
960987
Optional<S> transform<S>(S Function(T value) transformer) {
961988
return _value == null
962989
? Optional<S>.absent()
963-
: Optional<S>.of(transformer(_value as T));
990+
: Optional<S>.of(transformer(_value));
964991
}
965992

966993
/// Transforms the Optional value.
@@ -971,7 +998,7 @@ class Optional<T> extends IterableBase<T> {
971998
Optional<S> transformNullable<S>(S? Function(T value) transformer) {
972999
return _value == null
9731000
? Optional<S>.absent()
974-
: Optional<S>.fromNullable(transformer(_value as T));
1001+
: Optional<S>.fromNullable(transformer(_value));
9751002
}
9761003

9771004
@override

packages/camera/camera/pubspec.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ description: A Flutter plugin for controlling the camera. Supports previewing
44
Dart.
55
repository: https://github.com/flutter/packages/tree/main/packages/camera/camera
66
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
7-
version: 0.10.5+9
7+
version: 0.10.6
88

99
environment:
10-
sdk: ^3.1.0
11-
flutter: ">=3.13.0"
10+
sdk: ^3.2.3
11+
flutter: ">=3.16.6"
1212

1313
flutter:
1414
plugin:
@@ -21,10 +21,10 @@ flutter:
2121
default_package: camera_web
2222

2323
dependencies:
24-
camera_android: ^0.10.7
25-
camera_avfoundation: ^0.9.13
26-
camera_platform_interface: ^2.5.0
27-
camera_web: ^0.3.1
24+
camera_android: ^0.10.9
25+
camera_avfoundation: ^0.9.15
26+
camera_platform_interface: ^2.6.0
27+
camera_web: ^0.3.3
2828
flutter:
2929
sdk: flutter
3030
flutter_plugin_android_lifecycle: ^2.0.2

packages/camera/camera/test/camera_preview_test.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// found in the LICENSE file.
44

55
import 'package:camera/camera.dart';
6+
import 'package:camera_platform_interface/camera_platform_interface.dart';
67
import 'package:flutter/foundation.dart';
78
import 'package:flutter/material.dart';
89
import 'package:flutter/services.dart';
@@ -68,6 +69,15 @@ class FakeController extends ValueNotifier<CameraValue>
6869
@override
6970
ResolutionPreset get resolutionPreset => ResolutionPreset.low;
7071

72+
@override
73+
MediaSettings get mediaSettings => const MediaSettings(
74+
resolutionPreset: ResolutionPreset.low,
75+
fps: 15,
76+
videoBitrate: 200000,
77+
audioBitrate: 32000,
78+
enableAudio: true,
79+
);
80+
7181
@override
7282
Future<void> resumeVideoRecording() async {}
7383

0 commit comments

Comments
 (0)