diff --git a/packages/camera/camera/CHANGELOG.md b/packages/camera/camera/CHANGELOG.md index f7db10b19c99..fe24f9c1a766 100644 --- a/packages/camera/camera/CHANGELOG.md +++ b/packages/camera/camera/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.10.3 +* Adds support for NV21 streaming format. + ## 0.10.2+1 * Updates code for stricter lint checks. diff --git a/packages/camera/camera/lib/src/camera_image.dart b/packages/camera/camera/lib/src/camera_image.dart index bfcad6626dd6..e1303f6d16e0 100644 --- a/packages/camera/camera/lib/src/camera_image.dart +++ b/packages/camera/camera/lib/src/camera_image.dart @@ -90,6 +90,9 @@ ImageFormatGroup _asImageFormatGroup(dynamic rawFormat) { // android.graphics.ImageFormat.JPEG case 256: return ImageFormatGroup.jpeg; + // android.graphics.ImageFormat.NV21 + case 17: + return ImageFormatGroup.nv21; } } diff --git a/packages/camera/camera/pubspec.yaml b/packages/camera/camera/pubspec.yaml index fb62665e2e39..01d3891c1067 100644 --- a/packages/camera/camera/pubspec.yaml +++ b/packages/camera/camera/pubspec.yaml @@ -4,7 +4,7 @@ description: A Flutter plugin for controlling the camera. Supports previewing Dart. repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.10.2+1 +version: 0.10.3 environment: sdk: ">=2.14.0 <3.0.0" @@ -23,7 +23,7 @@ flutter: dependencies: camera_android: ^0.10.1 camera_avfoundation: ^0.9.9 - camera_platform_interface: ^2.3.2 + camera_platform_interface: ^2.4.0 camera_web: ^0.3.1 flutter: sdk: flutter diff --git a/packages/camera/camera/test/camera_image_test.dart b/packages/camera/camera/test/camera_image_test.dart index ecf4b509e2e4..e15d2877f867 100644 --- a/packages/camera/camera/test/camera_image_test.dart +++ b/packages/camera/camera/test/camera_image_test.dart @@ -139,6 +139,30 @@ void main() { expect(cameraImage.format.group, ImageFormatGroup.yuv420); }); + test('$CameraImage has ImageFormatGroup.nv21 for Android', () { + debugDefaultTargetPlatformOverride = TargetPlatform.android; + + final CameraImage cameraImage = + CameraImage.fromPlatformData({ + 'format': 17, + 'height': 1, + 'width': 4, + 'lensAperture': 1.8, + 'sensorExposureTime': 9991324, + 'sensorSensitivity': 92.0, + 'planes': [ + { + 'bytes': Uint8List.fromList([1, 2, 3, 4]), + 'bytesPerPixel': 1, + 'bytesPerRow': 4, + 'height': 1, + 'width': 4 + } + ] + }); + expect(cameraImage.format.group, ImageFormatGroup.nv21); + }); + test('$CameraImage has ImageFormatGroup.bgra8888 for iOS', () { debugDefaultTargetPlatformOverride = TargetPlatform.iOS;