Untitled

mail@pastecode.io avatar
unknown
objectivec
a month ago
2.7 kB
0
Indexable
Never
```
- (void) setupCamera {
    __weak typeof (self) weakSelf = self;
    self.textRequest = [[VNRecognizeTextRequest alloc] initWithCompletionHandler:^(VNRequest * _Nonnull request, NSError * _Nullable error) {
        __strong typeof(self) strongSelf = weakSelf;
        if (!strongSelf.isScanning) {
            return;
        }
        if (error) {
            NSLog(@"Tanishq_hello_got_error_in_setupcamera");
            return;
        }
        [strongSelf processVNRequest:request];
    }];
    AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInWideAngleCamera mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionBack];
    
    self.captureDevice = captureDevice;
    self.captureSession = [[AVCaptureSession alloc] init];
    self.captureSession.sessionPreset = AVCaptureSessionPreset1920x1080;
    
    NSError *deviceInputError;
    AVCaptureDeviceInput *deviceInput = [[AVCaptureDeviceInput alloc] initWithDevice:captureDevice error:&deviceInputError];
    if (deviceInputError) {
        // [self stopWithError:[STPCardScanner stp_cardScanningError]];
        return;
    }
    
    if ([self.captureSession canAddInput:deviceInput]) {
        [self.captureSession addInput:deviceInput];
    } else {
        // [self stopWithError:[STPCardScanner stp_cardScanningError]];
        return;
    }
    
    self.videoDataOutputQueue = dispatch_queue_create("tanishq.VideoDataOutputQueue", nil);
    self.videoDataOutput = [[AVCaptureVideoDataOutput alloc] init];
    self.videoDataOutput.alwaysDiscardsLateVideoFrames = YES;
    [self.videoDataOutput setSampleBufferDelegate:self queue:self.videoDataOutputQueue];
    
    [self.videoDataOutput setVideoSettings:@{(id)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange)}];
        
    if ([self.captureSession canAddOutput:self.videoDataOutput]) {
        NSLog(@"Tanishq_adding_videodataoutput");
        [self.captureSession addOutput:self.videoDataOutput];
    } else {
        return;
    }
    
    [[self.videoDataOutput connectionWithMediaType:AVMediaTypeVideo] setPreferredVideoStabilizationMode:AVCaptureVideoStabilizationModeAuto];
    [self.captureSession startRunning];
    
    NSError *lockError;
    [self.captureDevice lockForConfiguration:&lockError];
    if (lockError == nil) {
        self.captureDevice.autoFocusRangeRestriction = AVCaptureAutoFocusRangeRestrictionNear;
    }
    
    return;
}
```

And capturing delegate output using :

```
- (void)captureOutput:(AVCaptureOutput *)output didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
    NSLog(@"Tanishq_hello_captureOutput_called");
    return;
}
```
Leave a Comment