I am maintaining a set of data obtained from a AVCaptureSynchronizedData
. One of the methods I use modifies the CVPixelBuffers
obtained from the AVCaptureSynchronizedData
. While modifying. the CVPixelBuffer
, I create a copy of the CVPixelBuffer
via
let status = CVPixelBufferCreateWithBytes(nil, scaleWidth, scaleHeight,
pixelFormat, destData,
destBytesPerRow, releaseCallback,
nil, nil, &dstPixelBuffer)
The releaseCallBack
is referenced as
let releaseCallback: CVPixelBufferReleaseBytesCallback = { _, ptr in
if let ptr = ptr {
free(UnsafeMutableRawPointer(mutating: ptr))
}
}
However, I would like to be able to keep up with how many times this is called. But, if I add something like
var num:Int = 0
let releaseCallback: CVPixelBufferReleaseBytesCallback = { _, ptr in
if let ptr = ptr {
num += 1
free(UnsafeMutableRawPointer(mutating: ptr))
}
}
I get the error
A C function pointer cannot be formed from a closure that captures context
Not sure if it is possible, but it would be incredibly useful to be able to keep count of the number of times a pointer is destroyed