RTCCVPixelBuffer doesn't work with 420YpCbCr8PlanarFullRange for VP8

13 views
Skip to first unread message

na...@cape.com

unread,
May 16, 2018, 2:32:05 AM5/16/18
to discuss-webrtc
Hi,

I'm developing an iPad app and having a problem using VP8 for three-plane YCbCr stream.
Basically, what I'm doing is to generate CVPixelBuffer and feed it via the module below.

class MyVideoCapturer: RTCVideoCapturer {
    func feed(pixelBuffer: CVPixelBuffer) {
        let rtcPixelBuffer = RTCCVPixelBuffer(pixelBuffer: pixelBuffer)
        let ts = llround(CACurrentMediaTime() * Double(NSEC_PER_SEC))
        let videoFrame = RTCVideoFrame(buffer: rtcPixelBuffer, rotation: ._0, timeStampNs: ts)
        delegate?.capturer(self, didCapture: videoFrame)
    }
}

This works perfectly without any problem if I use "H264" codec, but if I use "VP8", this doesn't seem to work
(Chrome - 66.0.3359.170 (Official Build) (64-bit) shows solid grey box) when the format of pixelBuffer is
kCVPixelFormatType_420YpCbCr8PlanarFullRange.

Interestingly, when it's kCVPixelFormatType_420YpCbCr8BiPlanarFullRange, it works like a charm.

chrome://webrtc-internals/ doesn't show anything strange.

Is this a known issue or am I missing something?

P.S. I'm terribly sorry if I happened to post this twice. My first post seems lost forever, but maybe just taking time?
Reply all
Reply to author
Forward
0 new messages