Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
- {
- CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
- size_t frameWidth = CVPixelBufferGetWidth(pixelBuffer);
- size_t frameHeight = CVPixelBufferGetHeight(pixelBuffer);
- CVOpenGLESTextureRef texture = NULL;
- CVReturn err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,
- videoTextureCache,
- pixelBuffer,
- NULL,
- GL_TEXTURE_2D,
- GL_RGBA,
- frameWidth,
- frameHeight,
- GL_BGRA,
- GL_UNSIGNED_BYTE,
- 0,
- &texture);
- if (!texture || err) {
- NSLog(@"CVOpenGLESTextureCacheCreateTextureFromImage failed (error: %d)", err);
- return;
- }
- }
- [output setVideoSettings:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- CFRelease(texture);
- CVOpenGLESTextureCacheFlush(videoTextureCache, 0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement