Видеопоток с камеры внутри CAOpenGLLayer - PullRequest
2 голосов
/ 03 мая 2010

Я пытаюсь получить видеопоток с несжатой камеры и преобразовать его в текстуру OpenGL, чтобы показать его внутри CAOpenGLLayer. Это правильный поток?

Я думал использовать технику, аналогичную предложенной здесь , чтобы показать видеокадры фильма, но следующий фрагмент не работает, в конце все координаты текс равны нулю.

Есть ли какой-нибудь пример, чтобы указать мне правильное направление?

- (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);
}

1 Ответ

0 голосов
/ 28 декабря 2011

Лучше посмотрите пример кода из Xcode, есть проект под названием LiveVideoMixer, который может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...