Erstelle CVPixelBuffer von YUV mit IOSurface
So bekomme ich rohe YUV-Daten in 3 separaten Arrays von einem Netzwerk-Callback (VoIP-App). Soweit ich weiß, können Sie mit @ keine IOSurface-gestützten Pixelpuffer erstelleCVPixelBufferCreateWithPlanarBytes
gemäßHie
Wichtig: Sie können CVPixelBufferCreateWithBytes () oder CVPixelBufferCreateWithPlanarBytes () nicht mit kCVPixelBufferIOSurfacePropertiesKey verwenden. Das Aufrufen von CVPixelBufferCreateWithBytes () oder CVPixelBufferCreateWithPlanarBytes () führt zu CVPixelBuffers, die nicht IOSurface-backed @ sin
So musst du es also mit @ erstellCVPixelBufferCreate
, aber wie überträgt man die Daten vom Anruf zurück zumCVPixelBufferRef
dass Sie erstellen?
- (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);
Ich bin mir nicht sicher, was ich danach hier tun soll? Schließlich möchte ich daraus ein CIImage machen, das ich dann mit GLKView zum Rendern des Videos verwenden kann. Wie "setzen" die Leute die Daten in die Puffer, wenn Sie sie erstellen?