As you can see from the declaration of the last parameter,
sbufCopyOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>
bufferCopy Must be declared as optional, and not as implicitly deployed optionally:
var bufferCopy: Unmanaged<CMSampleBuffer>?
Note that you must invoke takeRetainedValue()the result, so the complete solution will be:
var unmanagedBufferCopy: Unmanaged<CMSampleBuffer>?
if CMSampleBufferCreateCopy(kCFAllocatorDefault, sampleBuffer, &unmanagedBufferCopy) == noErr {
let bufferCopy = unmanagedBufferCopy!.takeRetainedValue()
// ...
} else {
// failed
}
: Swift 4 (, , Swift 4)
CMSampleBufferCreateCopy() ,
var bufferCopy: CMSampleBuffer?
if CMSampleBufferCreateCopy(kCFAllocatorDefault, sampleBuffer, &bufferCopy) == noErr {
// ... use bufferCopy! ...
} else {
// failed
}