Я поддерживаю набор данных, полученных из AVCaptureSynchronizedData
. Один из методов, которые я использую, модифицирует CVPixelBuffers
, полученный из AVCaptureSynchronizedData
. Пока модифицирую. CVPixelBuffer
, я создаю копию CVPixelBuffer
через
let status = CVPixelBufferCreateWithBytes(nil, scaleWidth, scaleHeight,
pixelFormat, destData,
destBytesPerRow, releaseCallback,
nil, nil, &dstPixelBuffer)
На releaseCallBack
ссылаются как
let releaseCallback: CVPixelBufferReleaseBytesCallback = { _, ptr in
if let ptr = ptr {
free(UnsafeMutableRawPointer(mutating: ptr))
}
}
Однако я хотел бы иметь возможность сохранить с сколько раз это называется. Но, если я добавлю что-то вроде
var num:Int = 0
let releaseCallback: CVPixelBufferReleaseBytesCallback = { _, ptr in
if let ptr = ptr {
num += 1
free(UnsafeMutableRawPointer(mutating: ptr))
}
}
, я получу ошибку
A C Указатель функции не может быть сформирован из замыкания, которое захватывает контекст
Не уверен, если это возможно, но было бы невероятно полезно иметь возможность подсчитывать количество разрушений указателя