[_videoOutput copyPixelBufferForItemTime: [_ playerItem currentTime] itemTimeForDisplay: nil] kaynağından CVPixelBuffer'ı alıyorum;OpenGLES 3 Hata CVOpenGLESTextureCacheCreateTextureFromImage -6683
: ve ben// Y-plane
glActiveTexture(GL_TEXTURE0);
err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,_videoTextureCache, pixelBuffer, NULL, GL_TEXTURE_2D, GL_RED_EXT,width, height, GL_RED_EXT, GL_UNSIGNED_BYTE, 0, &outTexture);
if (err) {
NSLog(@"Error at CVOpenGLESTextureCacheCreateTextureFromImage %d", err);
}
Ben OpenGLES 2.0 kullanmak
, işe yaradı, ancak OpenGLES 3.0'a, başarısız olacaktır değişti luma doku veya krom doku oluşturmak ve aşağıdaki gibi bazı hatalar yazdırmak için CVOpenGLESTextureCacheCreateTextureFromImage işlevine bu pixelbuffer aktarmak CVOpenGLESTextureCacheCreateTextureFromImage -6683 dehata IOSurface görüntü (doku)
OpenGLES oluşturulamadı 3.0/2.0 kodu:
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
if (!_context) {
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!_context) {
NSLog(@"Failed to create ES context");
}
_openGLESVer = OpenGLESVersion2;
}
Core Video'da yuv420sp sabiti nedir? –