Ios CVOpenGLESTextureCacheCreateTextureFromImage错误

Ios CVOpenGLESTextureCacheCreateTextureFromImage错误,ios,xcode,ios7,ios8,Ios,Xcode,Ios7,Ios8,我正在进行应用程序第二版更新。一切正常,但突然我开始犯这个错误。我正在使用GPUImage库进行过滤。我正在iphone6/ios8.3上测试我的应用程序。我也检查了我的旧代码,但我开始得到相同的错误。有人帮我解决这个问题吗 我们有一些代码调用了CVPixelBufferCreate,传递了错误的参数。好吧,这来自一些示例代码,之后有一些坏的拷贝和粘贴,所以可能您的代码也有相同的错误 CVPixelBufferCreate采用属性字典。有些键,如kcvpixelbufferopenglescom

我正在进行应用程序第二版更新。一切正常,但突然我开始犯这个错误。我正在使用GPUImage库进行过滤。我正在iphone6/ios8.3上测试我的应用程序。我也检查了我的旧代码,但我开始得到相同的错误。有人帮我解决这个问题吗


我们有一些代码调用了
CVPixelBufferCreate
,传递了错误的参数。好吧,这来自一些示例代码,之后有一些坏的拷贝和粘贴,所以可能您的代码也有相同的错误

CVPixelBufferCreate
采用属性字典。有些键,如
kcvpixelbufferopenglescompabilitykey
需要CFBoolean,但我们传递的是字典。这种风格的作品:

NSDictionary *attrs = @{ (NSString*)kCVPixelBufferIOSurfacePropertiesKey : @{},
                         (NSString*)kCVPixelBufferOpenGLESCompatibilityKey: @YES}; <-- we had @{} !

err = CVPixelBufferCreate(kCFAllocatorDefault, width, height, formatType, (__bridge CFDictionaryRef)attrs, &pixelBuffer);
NSDictionary*attrs=@{(NSString*)kCVPixelBufferIOSurfacePropertiesKey:@{},

(NSString*)kCVPixelBufferOpenGLESCompatibilityKey:@YES} 我正在使用gpuimage1.6.0,并且看到了相同的问题。试图改变建议的提议,但没用。还有其他想法/建议吗

CFDictionarySetValue(attrs, kCVPixelBufferIOSurfacePropertiesKey, empty);
CFDictionarySetValue(attrs, kCVPixelBufferOpenGLESCompatibilityKey, kCFBooleanTrue);

CVReturn err = CVPixelBufferCreate(kCFAllocatorDefault, (int)_size.width, (int)_size.height, kCVPixelFormatType_32BGRA, attrs, &renderTarget);

我从布拉德·拉森那里得到了这个解决方案,我认为他是对的。
“如果您直接从摄像头进行过滤,请不要使用-imageByFilterInImages:和中间UIImages。这在内存消耗和性能方面都会非常昂贵,因为您必须在CPU上转换UIImages和UIImages。相反,请使用GPUIImageVideoCamera实例的链过滤器。”

我们现在看到的情况与使用Xcode 7/iOS 9 SDK构建的情况相同。我们发现使用带有Xcode 6的iOS 8 SDK不会出现崩溃。你也在Xcode 7上吗?FWIW,iPhone 5S和iPad4都在8.2上运行良好。是的,我使用的是Xcode7/iOS9。您是对的,使用带有Xcode 6的iOS 8 SDK不会发生崩溃。但它只在调试期间崩溃。实际上,安装后应用程序在手机上运行良好。我们应该打开雷达。我没有一个小的可复制的案例可以这样做。你已经打开了我可以复制的雷达了吗?没有。你可以打开它。我创建了一个小测试用例,通过了与崩溃场景相同的参数,但它当然不会崩溃!在触发它之前一定有别的事情发生。我还没有缩小范围。