你好,我是ios开发的新手,我遇到了一些问题
我做了一些类似AVAssetWriter的对象的设置(我用它将像素映射作为帧写入视频-它工作得很好)
self.assetWriter = [[AVAssetWriter alloc] initWithURL:outputPath fileType:AVFileTypeQuickTimeMovie error:&error];
NSMutableDictionary *dic=[[NSMutableDictionary alloc] init];
[dic setValue: AVVideoCodecH264 forKey: AVVideoCodecKey];
[dic setValue:[NSNumber numberWithInt:640] forKey:AVVideoWidthKey];
[dic setValue:[NSNumber numberWithInt:480] forKey:AVVideoHeightKey];
self.assetWriterInput = [[AVAssetWriterInput alloc] initWithMediaType:AVMediaTypeVideo outputSettings:dic];
[dic release];
assetWriterInputPixelBufferAdaptor =[[AVAssetWriterInputPixelBufferAdaptor alloc] initWithAssetWriterInput:assetWriterInput sourcePixelBufferAttributes:nil];
self.assetWriterInput.expectsMediaDataInRealTime=YES;
[self.assetWriter addInput:assetWriterInput];
[self.assetWriter startWriting];
[self.assetWriter startSessionAtSourceTime:recordStartTime];然后保存视频,然后释放实例
[self.assetWriterInput markAsFinished];
[self.assetWriter endSessionAtSourceTime:recordStartTime];
[self.assetWriter finishWriting];
CVPixelBufferPoolRelease(assetWriterInputPixelBufferAdaptor.pixelBufferPool);
[self.assetWriter release];
[self.assetWriterInput release];
[self.assetWriterInputPixelBufferAdaptor release];问题是,当我多次使用上述对来创建和释放实例以保存几个视频时,Instruments会显示泄漏
帮助!
发布于 2011-05-28 08:35:31
AVAssetWriter *newWriter = [AVAssetWriter alloc] // retain count is 1.
self.assetWriter = newWriter // What this actually does:
- (void)setAssetWriter(AVAssetWriter*)newWriter
{
if (_assetWriter != newWriter)
{
[_assetWriter release]
_assetWriter = [newWriter retain]; //retain count 2
}
}
[self.assetWriter release]; //retain count 1如果您忘记在dealloc中添加self.assetWriter = nil;,您最终会泄漏。在分配实例并通过@properties分配它们时,将自动释放附加到分配行,如下所示:
self.assetWriter = [[[AVAssetWriter alloc] initWithURL:outputPath fileType:AVFileTypeQuickTimeMovie error:&error] autorelease]; https://stackoverflow.com/questions/6156917
复制相似问题