Source-SCCamera/ManagedCapturer/SCCaptureMetadataObjectPars...

39 lines
1.2 KiB
Objective-C

//
// SCCaptureMetadataObjectParser.m
// Snapchat
//
// Created by Jiyang Zhu on 3/13/18.
// Copyright © 2018 Snapchat, Inc. All rights reserved.
//
#import "SCCaptureMetadataObjectParser.h"
#import <SCBase/SCMacros.h>
@import UIKit;
@implementation SCCaptureMetadataObjectParser
- (NSDictionary<NSNumber *, NSValue *> *)parseFaceBoundsByFaceIDFromMetadataObjects:
(NSArray<__kindof AVMetadataObject *> *)metadataObjects
{
NSMutableArray *faceObjects = [NSMutableArray array];
[metadataObjects
enumerateObjectsUsingBlock:^(__kindof AVMetadataObject *_Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) {
if ([obj isKindOfClass:[AVMetadataFaceObject class]]) {
[faceObjects addObject:obj];
}
}];
SC_GUARD_ELSE_RETURN_VALUE(faceObjects.count > 0, nil);
NSMutableDictionary<NSNumber *, NSValue *> *faceBoundsByFaceID =
[NSMutableDictionary dictionaryWithCapacity:faceObjects.count];
for (AVMetadataFaceObject *faceObject in faceObjects) {
[faceBoundsByFaceID setObject:[NSValue valueWithCGRect:faceObject.bounds] forKey:@(faceObject.faceID)];
}
return faceBoundsByFaceID;
}
@end