Доля экрана остановлена ​​из-за (нулевой) в iPAD - PullRequest
0 голосов
/ 21 мая 2019

Я использую 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)

}

...