[_videoOutput copyPixelBufferForItemTime:[_ playerItem currentTime] itemTimeForDisplay:nil]からCVPixelBufferを受信しました。そして、私はOpenGLES 2.0を使用する場合、それは働いたが、OpenGLES 3.0に変更し、それが失敗し、以下のようないくつかのエラーを表示しますOpenGLES 3 CVOpenGLESTextureCacheCreateTextureFromImageでエラー-6683
// 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);
}
ルマテクスチャやクロムテクスチャを作成するためにCVOpenGLESTextureCacheCreateTextureFromImage関数にこのpixelbufferを転送:
CVOpenGLESTextureCacheCreateTextureFromImage -6683 で
エラーIOSurface画像(テクスチャ)を作成できませんでした
OpenGLES 3.0/2.0コード:
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
if (!_context) {
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!_context) {
NSLog(@"Failed to create ES context");
}
_openGLESVer = OpenGLESVersion2;
}
Core Videoのyuv420spの定数は何ですか? –