Speex doesn't seem to offer any advantage over other codecs and is deprecated in
favor of Opus by Xiph.Org.
Added this feature in a generic fashion in order to allow eventual deprecation
of some other codecs that may not be useful but would complicate further
development.
Send same RTP timestamps for audio/video frames captured at the same
time.
RTP specification allows this (although doesn't require - according to
the spec, the RTP timestamps should colaesce with RTCP NTP
correspondence). We slightly modify that in a way that we use for both
audio and video 90 kHz clock resolution, so if the start point is the
same (random), the RTP timestamps will be exactly the same for related
data.
Implemented for vidcap DeckLink and testcard.
libavcodec audio decoder has assertion on channel non-emptiness (which
is perhpas correct - there cannot be anything done there) so do not pass
emtpy channels.
refer to GH-316
For audio codecs, we respect its native capitalization of letters, eg.
AAC, speex. So do it also for Opus. This should not affect existing
applications since the Opus name is parsed case-insensitively.
Only exception is SDP (rtpmap) where is usually used lower-case (at
least in rfc7587).
Fixed some of (easy) newly detected Coverity bugs. Those are mostly
innocent ones (performance) and not new (detected because of new release
of Coverity).
Fill missing channel samples with a silence. This should behave better
in case of greater number of channels because now is not dropped the
whole frame.
* better check values' boundries
* for MTU and traffic shapper also check if there are reasonable values
(eg. for the cases when they are interchanged by mistake)