ffmpeg ios,解码rtsp流导致内存泄漏

时间:2013-07-22 10:55:36

标签: ios memory-leaks ffmpeg rtsp

我有一个ios应用程序,使用ffmpeg库通过网络流式传输rtsp视频。 在随机时间我有一个没有错误消息的崩溃,控制台中唯一的消息是"内存警告"。 使用仪器我检测到一些内存泄漏,这链接有关错误的屏幕截图:http://vincentvega.it/iphone/video.png,我认为问题出在代码点,我在屏幕上显示uiimage:

- (void)convertFrameToRGB
{
    sws_scale(img_convert_ctx,
              pFrame->data,
              pFrame->linesize,
              0,
              pCodecCtx->height,
              picture.data,
              picture.linesize);

}

- (UIImage *)imageFromAVPicture:(AVPicture)pict width:(int)width height:(int)height
{
    CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault;
    CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, pict.data[0], pict.linesize[0]*height,kCFAllocatorNull);
    CGDataProviderRef provider = CGDataProviderCreateWithCFData(data);
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGImageRef cgImage = CGImageCreate(width, 
                                       height, 
                                       8, 
                                       24, 
                                       pict.linesize[0], 
                                       colorSpace, 
                                       bitmapInfo, 
                                       provider, 
                                       NULL, 
                                       NO, 
                                       kCGRenderingIntentDefault);
    CGColorSpaceRelease(colorSpace);
    UIImage *image = [[UIImage alloc] initWithCGImage:cgImage];



    return [image autorelease];
}

如何检测导致内存问题的功能?

解决了!我只需要在" imagefromavcapture":

中添加以下代码
CGImageRelease(cgImage);
    CGDataProviderRelease(provider);
    CFRelease(data);

0 个答案:

没有答案