Сбой AVAssetWriterInput - PullRequest
       9

Сбой AVAssetWriterInput

2 голосов
/ 11 сентября 2011

Я записываю конечный буфер видео.Через 15 секунд я создаю новый экземпляр AVAssetWriter и добавляю свой экземпляр AVAssetWriterInput в качестве входных данных.Я беру кадры, используя AVCaptureVideoDataOutput, и добавляю их так:

[writerInput appendSampleBuffer:sampleBuffer]

В большинстве случаев это работает нормально, но иногда приложение вылетает с таким сообщением об ошибке:

*** -[CFDictionary removeObjectForKey:]: message sent to deallocated instance 0x96b28a0

Что означает это сообщение об ошибке?Может ли это означать, что AVAssetWriter был освобожден?Или это означает, что AVAssetWriterInput был освобожден?Что-то еще?

Спасибо,

Джеймс

1 Ответ

0 голосов
/ 14 февраля 2012

Сообщение removeObjectForKey: было отправлено экземпляру CFDictionary (возможно, NSDictionary) с адресом 0x96b28a0.Этот экземпляр уже был освобожден, но указатель на него все еще использовался кодом.

Если вы работали с включенными зомби (иначе NSZombiesEnabled), система будет отслеживать освобожденные объекты и хранить ссылки достаточно долго, чтобыобнаружение с помощью висячих указателей.

Знать, что вы чрезмерно отпускаете объект, легче, чем найти неправильный выпуск.Много было написано на эту тему.

...