Ce que j'essaie de faire, c'est d'obtenir le flux vidéo de la caméra non compressée et de le convertir en une texture OpenGL, pour l'afficher dans un CAOpenGLLayer. Est-ce le bon flux?Flux vidéo de la caméra dans CAOpenGLLayer
Je pensais utiliser une technique similaire à celle proposée here pour afficher les images vidéo de film, mais l'extrait suivant ne fonctionne pas, à la fin les coeurs tex sont tous à zéro.
Y a-t-il un exemple pour me pointer dans la bonne direction?
- (void) awakeFromNib {
QTCaptureSession *session = [[QTCaptureSession alloc] init];
QTCaptureDevice *iSight = [QTCaptureDevice defaultInputDeviceWithMediaType:QTMediaTypeVideo];
[iSight open:nil];
QTCaptureDeviceInput *myInput = [QTCaptureDeviceInput deviceInputWithDevice:iSight];
QTCaptureDecompressedVideoOutput *mCaptureDecompressedVideoOutput = [[QTCaptureDecompressedVideoOutput alloc] init];
[mCaptureDecompressedVideoOutput setDelegate:self];
[session addInput:myInput error:nil];
[session addOutput:mCaptureDecompressedVideoOutput error:nil];
[session startRunning];
}
- (void)captureOutput:(QTCaptureOutput *)captureOutput didOutputVideoFrame:(CVImageBufferRef)videoFrame withSampleBuffer:(QTSampleBuffer *)sampleBuffer fromConnection:(QTCaptureConnection *)connection
{
GLfloat lowerLeft[2];
GLfloat lowerRight[2];
GLfloat upperRight[2];
GLfloat upperLeft[2];
CVOpenGLTextureGetCleanTexCoords(imageBuffer, lowerLeft, lowerRight, upperRight, upperLeft);
}
Tous ces exemples sont de 32 bits seulement. Cette question concerne les frameworks 'AVFoundation' ou' QTKit' 64 bits. – spudwaffle