AOMediaCodec / av1-rtp-spec

Current draft (HTML): https://aomediacodec.github.io/av1-rtp-spec/
Other
63 stars 24 forks source link

SDP parameters are needed for high bit depth flags #233

Open nirbheek opened 1 year ago

nirbheek commented 1 year ago

The SDP parameter profile (AV1 seq_profile) is not sufficient to deduce which bit depth is supported by a peer, from page 32 of the spec:

high_bitdepth
if ( seq_profile == 2 && high_bitdepth ) {
  twelve_bit
  BitDepth = twelve_bit ? 12 : 10
} else if ( seq_profile <= 2 ) {
  BitDepth = high_bitdepth ? 10 : 8
}

So we need another parameter to signify 8-bit, 10-bit, 12-bit, with room reserved for a possible future 16-bit variant.

This will be a problem very soon, because Chrome only ships with dav1d in 8-bit mode, but services that use WHIP will want 10-bit support for ingest. Mobile apps such as Facebook have already deployed a combined 8-bit + 10-bit dav1d for reels and live streams, and WHIP ingest for live streaming is a real use-case.

aboba commented 1 year ago

Section A.2 of the AV1 spec requires main and high compliant decoders to decode both 8 and 10 bit streams. Therefore, the desired signaling would only be relevant to a constrained (non-compliant) implementation.

nirbheek commented 1 year ago

Thanks! Good to know that lack of 10-bit support is a non-compliance issue in Chrome.

I think SDP parameters would still be needed for 12-bit?