Crie CVPixelBuffer a partir de YUV com IOSurface suportado

Portanto, estou obtendo dados YUV brutos em 3 matrizes separadas de um retorno de chamada de rede (aplicativo de voip). Pelo que entendi, você não pode criar buffers de pixel suportados pelo IOSurface comCVPixelBufferCreateWithPlanarBytes de acordo comaqui

Importante: Você não pode usar CVPixelBufferCreateWithBytes () ou CVPixelBufferCreateWithPlanarBytes () com kCVPixelBufferIOSurfacePropertiesKey. Chamar CVPixelBufferCreateWithBytes () ou CVPixelBufferCreateWithPlanarBytes () resultará em CVPixelBuffers que não são suportados pelo IOSurface

Portanto, você deve criá-lo comCVPixelBufferCreate, mas como você transfere os dados da chamada de volta para oCVPixelBufferRef que você criou?

- (void)videoCallBack(uint8_t *yPlane, uint8_t *uPlane, uint8_t *vPlane, size_t width, size_t height, size_t stride yStride,
                      size_t uStride, size_t vStride)
    NSDictionary *pixelAttributes = @{(id)kCVPixelBufferIOSurfacePropertiesKey : @{}};
    CVPixelBufferRef pixelBuffer = NULL;
    CVReturn result = CVPixelBufferCreate(kCFAllocatorDefault,
                                          width,
                                          height,
                                          kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
                                          (__bridge CFDictionaryRef)(pixelAttributes),
                                          &pixelBuffer);

Não tenho certeza do que fazer depois aqui? Eventualmente, quero transformar isso em um CIImage, para que eu possa usar meu GLKView para renderizar o vídeo. Como as pessoas "colocam" os dados nos buffers a partir de quando você os cria?