Note that there are some explanatory texts on larger screens.

plurals
  1. POCVOpenGLESTextureCacheCreateTextureFromImage return -6683(kCVReturnPixelBufferNotOpenGLCompatible)
    primarykey
    data
    text
    <p>I had extract Y U V data from video frame separately and saved them in <code>data[0],data[1],data[2];</code>The frame size is <code>640*480;</code>Now I creat the <code>pixelBuffer</code> as below:</p> <pre><code>void *pYUV[3] = {data[0], data[1], data[2]}; size_t planeWidth = {640, 320, 320}; size_t planeHeight = {480, 240, 240}; size_t planeBytesPerRow = {640, 320, 320}; CVReturn renturn = CVPixelBufferCreateWithPlanarBytes(kCFAllocatorDefault, 640, 480, kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange, nil, nil, 3, pYUV, planeWidth, planeHeight, planeBytesPerRow, nil, nil, nil, &amp;_pixelBuffer); CVPixelBufferLockBaseAddress(_pixelBuffer, 0); CVPixelBufferRetain(_pixelBuffer); // Periodic texture cache flush every frame CVOpenGLESTextureCacheFlush(_textureCache, 0); // The Buffer cannot be used with OpenGL as either its size, pixelformat or attributes are not supported by OpenGL glActiveTexture(GL_TEXTURE0); CVReturn err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, _textureCache, _pixelBuffer, NULL, GL_TEXTURE_2D, GL_LUMINANCE, im.width, im.height, GL_LUMINANCE, GL_UNSIGNED_BYTE, 0, &amp;_yTexture); if (!_yTexture || err) { NSLog(@"CVOpenGLESTextureCacheCreateTextureFromImage failed (error: %d)", err); return; } glBindTexture(CVOpenGLESTextureGetTarget(_yTexture), CVOpenGLESTextureGetName(_yTexture)); CVPixelBufferUnlockBaseAddress(_pixelBuffer, 0); </code></pre> <p>But the err is -6638, the documentation simply states that "The pixel buffer is not compatible with OpenGL due to an unsupported buffer size, pixel format, or attribute." which does not help me much.</p> <p>How can I fixed it?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload