AVAssetWriterInputPixelBufferAdaptor управление памятью

Я записываю несколько кадров в видео с помощью AVAssetWriterInputPixelBufferAdaptor, и когда я записываю много кадров, мое приложение падает из-за выделения памяти. Как я могу предотвратить это? Вот код:

AVAssetWriterInput *writerInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo outputSettings:videoSettings];  

NSDictionary *sourcePixelBufferAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                                       [NSNumber numberWithInt:kCVPixelFormatType_32ARGB], kCVPixelBufferPixelFormatTypeKey, nil];

 AVAssetWriterInputPixelBufferAdaptor *adaptor = [AVAssetWriterInputPixelBufferAdaptor           
 assetWriterInputPixelBufferAdaptorWithAssetWriterInput:writerInput  
 sourcePixelBufferAttributes:sourcePixelBufferAttributesDictionary]; 


CVPixelBufferRef buffer = NULL;
                buffer = (CVPixelBufferRef)[self pixelBufferFromCGImage:[tmpImg CGImage] size:size];
                if (buffer)
                {
                    if(![adaptor appendPixelBuffer:buffer withPresentationTime:presentTime])
                        NSLog(@"FAIL");
                    else
                        NSLog(@"Success:%d",i);
                        CFRelease(buffer);

                }

При использовании Xcode Instruments утечка, похоже, происходит в

if(![adaptor appendPixelBuffer:buffer withPresentationTime:presentTime])

(AVAssetWriterInputPixelBufferAdaptor)

Может действительно пригодиться помощь или указатель на рабочий пример. Спасибо!


person Igor Bidiniuc    schedule 23.12.2011    source источник
comment
Посмотрите на мой ответ, вы получите ключ. stackoverflow.com/questions/13523535/   -  person Harshal Chaudhari    schedule 25.12.2012