Я использую Replay Kit 2 (Broadcast Upload Extension) для совместного использования экрана в моем приложении.
Он отлично работает на iPhone, но ошибка появляется через несколько секунд, когда он пересекает ограничение памяти в 50 МБ, когда я запускаю его на iPAD.
Проблема связана с высоким разрешением iPAD.Также я должен использовать vp8 из-за ограничений на стороне сервера, поэтому не могу использовать H264.
Я пытался минимизировать разрешение для CMSampleBuffer перед отправкой его на сервер, но память все еще увеличивается с той же скоростью и останавливается.
func didCapture(_ sampleBuffer: CMSampleBuffer){
if CMSampleBufferGetNumSamples(sampleBuffer) != 1 ||
!CMSampleBufferIsValid(sampleBuffer) ||
!CMSampleBufferDataIsReady(sampleBuffer) {
return
}
let rtcPixelBuffer = RTCCVPixelBuffer(pixelBuffer: pixelBuffer)
rtcPixelBuffer.toI420()
// let value = rtcPixelBuffer.cropAndScale(to: CVPixelBuffer, withTempBuffer: <#T##UnsafeMutablePointer<UInt8>#>)
let timeStampNs = Int64(CMTimeGetSeconds(CMSampleBufferGetPresentationTimeStamp(sampleBuffer)) * Double(NSEC_PER_SEC))
let videoFrame = RTCVideoFrame(buffer: rtcPixelBuffer , rotation: ._0, timeStampNs: timeStampNs)
delegate?.capturer(self, didCapture: videoFrame)
}