1
1
#import " CameraPlugin.h"
2
2
#import < AVFoundation/AVFoundation.h>
3
- #import < libkern/OSAtomic.h>
4
3
#import < Accelerate/Accelerate.h>
4
+ #import < libkern/OSAtomic.h>
5
5
6
6
@interface NSError (FlutterError)
7
7
@property (readonly , nonatomic ) FlutterError *flutterError;
@@ -22,7 +22,7 @@ @interface FLTSavePhotoDelegate : NSObject <AVCapturePhotoCaptureDelegate>
22
22
- initWithPath : (NSString *)filename result : (FlutterResult)result ;
23
23
@end
24
24
25
- @interface FLTByteStreamHandler : NSObject <FlutterStreamHandler>
25
+ @interface FLTByteStreamHandler : NSObject <FlutterStreamHandler>
26
26
@property (readonly , nonatomic ) FlutterEventSink eventSink;
27
27
@end
28
28
@@ -153,7 +153,7 @@ - (instancetype)initWithCameraName:(NSString *)cameraName
153
153
154
154
_captureVideoOutput = [AVCaptureVideoDataOutput new ];
155
155
_captureVideoOutput.videoSettings =
156
- @{(NSString *)kCVPixelBufferPixelFormatTypeKey : @(videoFormat) };
156
+ @{(NSString *)kCVPixelBufferPixelFormatTypeKey : @(videoFormat)};
157
157
[_captureVideoOutput setAlwaysDiscardsLateVideoFrames: YES ];
158
158
[_captureVideoOutput setSampleBufferDelegate: self queue: dispatch_get_main_queue ()];
159
159
@@ -355,12 +355,14 @@ - (CVPixelBufferRef)convertYUVImageTOBGRA:(CVPixelBufferRef)pixelBuffer {
355
355
pixelRange.CbCrMax = 240 ;
356
356
pixelRange.CbCrMin = 16 ;
357
357
358
- vImageConvert_YpCbCrToARGB_GenerateConversion (kvImage_YpCbCrToARGBMatrix_ITU_R_601_4, &pixelRange, &infoYpCbCrToARGB, kvImage420Yp8_CbCr8, kvImageARGB8888, kvImageNoFlags);
358
+ vImageConvert_YpCbCrToARGB_GenerateConversion (kvImage_YpCbCrToARGBMatrix_ITU_R_601_4, &pixelRange,
359
+ &infoYpCbCrToARGB, kvImage420Yp8_CbCr8,
360
+ kvImageARGB8888, kvImageNoFlags);
359
361
360
362
vImage_Buffer sourceLumaBuffer;
361
363
sourceLumaBuffer.data = CVPixelBufferGetBaseAddressOfPlane (pixelBuffer, 0 );
362
364
sourceLumaBuffer.height = CVPixelBufferGetHeightOfPlane (pixelBuffer, 0 );
363
- sourceLumaBuffer.width = CVPixelBufferGetWidthOfPlane (pixelBuffer, 0 );;
365
+ sourceLumaBuffer.width = CVPixelBufferGetWidthOfPlane (pixelBuffer, 0 );
364
366
sourceLumaBuffer.rowBytes = CVPixelBufferGetBytesPerRowOfPlane (pixelBuffer, 0 );
365
367
366
368
vImage_Buffer sourceChromaBuffer;
@@ -369,20 +371,30 @@ - (CVPixelBufferRef)convertYUVImageTOBGRA:(CVPixelBufferRef)pixelBuffer {
369
371
sourceChromaBuffer.width = CVPixelBufferGetWidthOfPlane (pixelBuffer, 1 );
370
372
sourceChromaBuffer.rowBytes = CVPixelBufferGetBytesPerRowOfPlane (pixelBuffer, 1 );
371
373
372
- if (!destinationBuffer.height ) vImageBuffer_Init (&destinationBuffer, sourceLumaBuffer.height , sourceLumaBuffer.width , 32 , kvImageNoFlags);
374
+ if (!destinationBuffer.height ) {
375
+ vImageBuffer_Init (&destinationBuffer, sourceLumaBuffer.height , sourceLumaBuffer.width , 32 ,
376
+ kvImageNoFlags);
377
+ }
373
378
374
- vImageConvert_420Yp8_CbCr8ToARGB8888 (&sourceLumaBuffer, &sourceChromaBuffer, &destinationBuffer, &infoYpCbCrToARGB, NULL , 255 , kvImagePrintDiagnosticsToConsole);
379
+ vImageConvert_420Yp8_CbCr8ToARGB8888 (&sourceLumaBuffer, &sourceChromaBuffer, &destinationBuffer,
380
+ &infoYpCbCrToARGB, NULL , 255 ,
381
+ kvImagePrintDiagnosticsToConsole);
375
382
376
383
CVPixelBufferUnlockBaseAddress (pixelBuffer, kCVPixelBufferLock_ReadOnly );
377
384
CVPixelBufferRelease (pixelBuffer);
378
385
379
- if (!conversionBuffer.height ) vImageBuffer_Init (&conversionBuffer, sourceLumaBuffer.height , sourceLumaBuffer.width , 32 , kvImageNoFlags);
386
+ if (!conversionBuffer.height ) {
387
+ vImageBuffer_Init (&conversionBuffer, sourceLumaBuffer.height , sourceLumaBuffer.width , 32 ,
388
+ kvImageNoFlags);
389
+ }
380
390
381
- const uint8_t map[4 ] = { 3 , 2 , 1 , 0 };
391
+ const uint8_t map[4 ] = {3 , 2 , 1 , 0 };
382
392
vImagePermuteChannels_ARGB8888 (&destinationBuffer, &conversionBuffer, map, kvImageNoFlags);
383
393
384
394
CVPixelBufferRef newPixelBuffer = NULL ;
385
- CVPixelBufferCreateWithBytes (NULL , conversionBuffer.width , conversionBuffer.height , kCVPixelFormatType_32BGRA , conversionBuffer.data , conversionBuffer.rowBytes , NULL , NULL , NULL , &newPixelBuffer);
395
+ CVPixelBufferCreateWithBytes (NULL , conversionBuffer.width , conversionBuffer.height ,
396
+ kCVPixelFormatType_32BGRA , conversionBuffer.data ,
397
+ conversionBuffer.rowBytes , NULL , NULL , NULL , &newPixelBuffer);
386
398
387
399
return newPixelBuffer;
388
400
}
0 commit comments