사실 아직도 이해하고 있지 못 하는 코드이기도 하다.
Objective-C에서는 단 2~3줄 코딩으로 해결되는 것을 스위프트에서는 왜 이렇게 코딩하는 것인지 모르겠다.
(물론 내가 다른 값을 추가하긴 했지만..)
/* NSDictionary *options = @{(id)kCVPixelBufferCGImageCompatibilityKey: @YES, (id)kCVPixelBufferCGBitmapContextCompatibilityKey: @YES}; */ // stupid CFDictionary stuff let cfnumPointer = UnsafeMutablePointer<unsafepointer<void>>.alloc(1) let cfnum = CFNumberCreate(kCFAllocatorDefault, .IntType, cfnumPointer) let keys: [CFStringRef] = [kCVPixelBufferCGImageCompatibilityKey, kCVPixelBufferCGBitmapContextCompatibilityKey, kCVPixelBufferBytesPerRowAlignmentKey] let values: [CFTypeRef] = [kCFBooleanTrue, kCFBooleanTrue, cfnum] let keysPointer = UnsafeMutablePointer<unsafepointer<void>>.alloc(1) let valuesPointer = UnsafeMutablePointer<unsafepointer<void>>.alloc(1) keysPointer.initialize(keys) valuesPointer.initialize(values) let options = CFDictionaryCreate(kCFAllocatorDefault, keysPointer, valuesPointer, keys.count, nil, nil)
CVPixelBuffer를 사용하기 위해 꼭 필요한 코드 부분이다.