Swift) Добавление CMSampleBuffer к массиву Swift вызывает проблему с памятью - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время я создаю ABR LiveStreaming приложение, основанное на VideoToolbox и необходимое для хранения декодированного CMSampleBuffers в быстром массиве. Я использую его в качестве буфера и снимаю его с очереди при отображении кадра с помощью AVSampleBufferPlayerlayer.

Но когда я добавляю это sampleBuffer к массиву, ему требуется примерно 1 МБ памяти, поэтому, если я отображаю ок. 3000 тогда будет 3 гб. Я думаю, что он должен быть освобожден сразу после постановки в очередь AVSampleBufferPlayerlayer, но он не исчезает и исчезает, когда все кадры ставятся в очередь и отображаются.

У вас, ребята, был похожий опыт? поделитесь пожалуйста Заранее спасибо

После декодирования я добавляю его в массив.

self.buffers.append(sampleBuffer)

и я снимаю с него

lockQueue.async {
   self.buffers.removeFirst()
}
delegate?.queue(first)
...