Bug 231555

Summary: Internals.grabNextMediaStreamTrackFrame doesn't always convert to RGBA
Product: WebKit Reporter: Cameron McCormack (:heycam) <heycam>
Component: WebRTCAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   

Cameron McCormack (:heycam)
Reported 2021-10-11 21:34:51 PDT
I tried using Internals.grabNextMediaStreamTrackFrame for a test. It relies on MediaSample::getRGBAImageData. MediaSampleAVFObjC::getRGBAImageData does try to convert the sample's underlying CVPixelBuffer to RGBA, but it doesn't seem to work, at least for the case I was trying. When the frame was using a YUV420 pixel format, the PixelBufferConformerCV failed to do a conversion and instead produced a new CVPixelBuffer with the same format. The result is that in the test, the ImageData object passed to the grabNextMediaStreamTrackFrame Promise callback contained planar YUV data pretending to be RGBA. I failed to trace into VTPixelBufferConformerCopyConformedPixelBuffer to work out why this wasn't working.
Attachments
Radar WebKit Bug Importer
Comment 1 2021-10-18 21:35:20 PDT
Note You need to log in before you can comment on or make changes to this bug.