Создать CVPixelBuffer из YUV с IOSurface поддерживается

Таким образом, я получаю необработанные данные YUV в 3 отдельных массива из сетевого обратного вызова (приложение VoIP). Из того, что я понимаю, вы не можете создавать пиксельные буферы IOSurface с поддержкойCVPixelBufferCreateWithPlanarBytes в соответствии сВот

Важное замечание: Вы не можете использовать CVPixelBufferCreateWithBytes () или CVPixelBufferCreateWithPlanarBytes () с kCVPixelBufferIOSurfacePropertiesKey. Вызов CVPixelBufferCreateWithBytes () или CVPixelBufferCreateWithPlanarBytes () приведет к получению CVPixelBuffers, которые не поддерживаются IOSurface-backed

Таким образом, таким образом, вы должны создать его сCVPixelBufferCreate, но как вы передаете данные от обратного вызова доCVPixelBufferRef что ты создаешь?

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

Я не уверен, что делать потом здесь? В конце концов я хочу превратить это в CIImage, который затем я могу использовать мой GLKView для рендеринга видео. Как люди «помещают» данные в буферы с момента их создания?

Ответы на вопрос(2)

Ваш ответ на вопрос