В настоящее время я создаю ABR LiveStreaming
приложение, основанное на VideoToolbox
и необходимое для хранения декодированного CMSampleBuffers
в быстром массиве. Я использую его в качестве буфера и снимаю его с очереди при отображении кадра с помощью AVSampleBufferPlayerlayer
.
Но когда я добавляю это sampleBuffer
к массиву, ему требуется примерно 1 МБ памяти, поэтому, если я отображаю ок. 3000 тогда будет 3 гб. Я думаю, что он должен быть освобожден сразу после постановки в очередь AVSampleBufferPlayerlayer
, но он не исчезает и исчезает, когда все кадры ставятся в очередь и отображаются.
У вас, ребята, был похожий опыт? поделитесь пожалуйста
Заранее спасибо
После декодирования я добавляю его в массив.
self.buffers.append(sampleBuffer)
и я снимаю с него
lockQueue.async {
self.buffers.removeFirst()
}
delegate?.queue(first)