Bug 231555
| Summary: | Internals.grabNextMediaStreamTrackFrame doesn't always convert to RGBA | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Cameron McCormack (:heycam) <heycam> |
| Component: | WebRTC | Assignee: | 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)
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/84400615>