Raw data API provides CVPixelBuffers with wrong color range

Description
In general, stages of the image processing process are described in Fig. 1.


Figure 1: Stages of image processing process

To find out where the image quality is being destroyed, we have performed the test. We have feed the color test pattern image into the Zoom app. Then the image was sent to our iOS application and then sent back to Zoom.
The original preview image (1), the image on the entrance to our iOS application (2) and the image received from our iOS application by Zoom Mac application (3) were captured on the same screen and colors were measured by the Digital Color Meter utility (Fig. 2).


Figure 2: Measurement method

The color distortion implemented by our iOS application (between steps 2 and 3) is minimal (1-3 points) and is caused by the .264 encoding-decoding process.
The significant change is implemented inside the Zoom CDN and Zoom SDK. The nature of this distortion (black changed from 0 to 16, white changed from 255 to 235) is peculiar for conversion from Full-range to Video-range color space. However, the pixel buffer provided by the Zoom SDK is erroneously marked as full range (Fig. 3).


Figure 3: Properties of the CVPixelBuffer provided by the Raw Data API

Which iOS Client SDK version?
5.4.54520.1229

Smartphone (please complete the following information):

  • Device: Any iPad
  • OS: iOS 14

Hey @mcfly,

Thanks for using the dev forum!

Can you update to the latest version, run the test again, and get the SDK logs?

Thanks!
Michael