Любая идея, как сделать это преобразование? Есть ли лучший способ сделать это? < /P>
Код: Выделить всё
class DJICameraViewController: UIViewController, DJIVideoFeedListener, DJISDKManagerDelegate, DJICameraDelegate, VideoFrameProcessor {
// ...
func videoFeed(_ videoFeed: DJIVideoFeed, didUpdateVideoData rawData: Data) {
let videoData = rawData as NSData
let videoBuffer = UnsafeMutablePointer.allocate(capacity: videoData.length)
videoData.getBytes(videoBuffer, length: videoData.length)
DJIVideoPreviewer.instance().push(videoBuffer, length: Int32(videoData.length))
}
// MARK: VideoFrameProcessor Protocol Implementation
func videoProcessorEnabled() -> Bool {
// This is never called
return true
}
func videoProcessFrame(_ frame: UnsafeMutablePointer!) {
// This is never called
let pixelBuffer = frame.pointee.cv_pixelbuffer_fastupload as! CVPixelBuffer
let imageRequestHandler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: exifOrientationFromDeviceOrientation(), options: [:])
do {
try imageRequestHandler.perform(self.requests)
} catch {
print(error)
}
}
} // End of DJICameraViewController class
Редактировать 4 : подробности о том, как успешно извлечь буфер пикселя и использовать его, можно найти в этом комментарии, с тех пор, как это было все еще, с тех пор, как это было все еще, с тех пор, как это было все еще. Здесь, вот соответствующая суть, которую я создал, чтобы помочь другим. Я не могу вспомнить, как/почему это было актуально, но, надеюсь, это имеет смысл!
Подробнее здесь: https://stackoverflow.com/questions/523 ... -framework
Мобильная версия