webrtc: add raw payload support
Depends on
Only the last commit is specific to this MR, the other commits implement other features which serve as a basis for this work and come from the following MRs:
-
!1463 (merged): this is the base infrastructure for the precise example MR stack. It aims at providing the same features & convenience as the RTSP based
rtp-rapid-sync-example
for WebRTC. It helped improve the WebRTC C stack with support for intra CNAME synchronization & RFC 6051 in-band NTP-64 timestamps for rapid synchronization. The example also allows spawning an arbitrary number of audio and/or video streams. -
!1500 (merged): adds RFC 7273 clock signalling to
webrtcsink
.
Raw payload support
This MR adds support for raw payloads such as L24 audio to webrtcsink
&
webrtcsrc
.
Most changes take place within the Codec
helper structure:
- A
Codec
can now advertise a depayloader. This also ensures that a format not only can be decoded when necessary, but it can also be depayloaded in the first place. - It is possible to declare raw
Codec
s, meaning that their caps are compatible with a payloader and a depayloader without the need for an encoder and decoder. - Previous accessor
has_decoder
was renamed ascan_be_received
to account for codecs which can be handled by an available depayloader with or without the need for a decoder. - New codecs were added for the following formats:
- L24, L16, L8 audio.
- RAW video.
The webrtc-precise-sync
examples were updated to demonstrate streaming of raw
audio or video.
Edited by François Laignel