Post not yet marked as solved
Click to stop watching this thread.
You have stopped watching this post. Click to start watching again.
contentPostList.repliesup-voted.tooltip
i faced a such issue and i made this: create CIContext in SampleHandler.init()
if let metalDevice = MTLCreateSystemDefaultDevice() {
coreImageContext = CIContext(mtlDevice: metalDevice)
} else {
coreImageContext = CIContext(options: nil)
}
2. add rotate method
private func rotate(_ sampleBuffer: CMSampleBuffer) -> CVPixelBuffer? {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return nil
}
var newPixelBuffer: CVPixelBuffer?
let error = CVPixelBufferCreate(kCFAllocatorDefault,
CVPixelBufferGetHeight(pixelBuffer),
CVPixelBufferGetWidth(pixelBuffer),
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange,
nil,
&newPixelBuffer)
guard error == kCVReturnSuccess,
let buffer = newPixelBuffer else {
return nil
}
let ciImage = CIImage(cvPixelBuffer: pixelBuffer).oriented(.left)
coreImageContext.render(ciImage, to: buffer)
return buffer
}
3. use the rotate() method in processSampleBuffer and send rotated buffer to a streaming-service