Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
  2. {
  3. CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
  4. size_t frameWidth = CVPixelBufferGetWidth(pixelBuffer);
  5. size_t frameHeight = CVPixelBufferGetHeight(pixelBuffer);
  6. CVOpenGLESTextureRef texture = NULL;
  7. CVReturn err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,
  8. videoTextureCache,
  9. pixelBuffer,
  10. NULL,
  11. GL_TEXTURE_2D,
  12. GL_RGBA,
  13. frameWidth,
  14. frameHeight,
  15. GL_BGRA,
  16. GL_UNSIGNED_BYTE,
  17. 0,
  18. &texture);
  19.  
  20.  
  21. if (!texture || err) {
  22. NSLog(@"CVOpenGLESTextureCacheCreateTextureFromImage failed (error: %d)", err);
  23. return;
  24. }
  25. }
  26.  
  27. [output setVideoSettings:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
  28.  
  29. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  30. glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
  31.  
  32. CFRelease(texture);
  33. CVOpenGLESTextureCacheFlush(videoTextureCache, 0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement