The color space extension is used to communicate color space information and optionally also metadata that is needed in order to properly render a high dynamic range (HDR) video stream. Contact kron@google.com for more info.
Name: “Color space” ; “RTP Header Extension for color space”
Formal name: http://www.webrtc.org/experiments/rtp-hdrext/color-space
Status: This extension is defined here to allow for experimentation. Once experience has shown that it is useful, we intend to make a proposal based on it for standardization in the IETF.
Data layout without HDR metadata (one-byte RTP header extension) 1-byte header + 4 bytes of data:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | L = 3 | primaries | transfer | matrix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |range+chr.sit. | +-+-+-+-+-+-+-+-+
Data layout of color space with HDR metadata (two-byte RTP header extension) 2-byte header + 28 bytes of data:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | length=28 | primaries | transfer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | matrix |range+chr.sit. | luminance_max | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | luminance_min | mastering_metadata.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |primary_r.x and .y | mastering_metadata.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |primary_g.x and .y | mastering_metadata.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |primary_b.x and .y | mastering_metadata.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |white.x and .y | max_content_light_level | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | max_frame_average_light_level | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The data is written in the following order, Color space information (4 bytes):
The extension may optionally include HDR metadata written in the following order, Mastering metadata (20 bytes):
Followed by max light levels (4 bytes):
Note, the byte order for all integers is big endian.
See the standard SMPTE ST 2086 for more information about these entities.
Notes: Extension should be present only in the last packet of video frames. If attached to other packets it should be ignored.