Add the 'all' keyword for the codec accept option in publish mode:
- 'all': keep all codecs supported for transcoding and their
supplemental codecs, removing only unsupported ones
- 'all' + 'any': keep all codecs from the offer without removing any
Closes#2105
Change-Id: Ic271a5e461703e3b9dba3c0717bfbb9da89a03ca
Add RED (RFC 2198) codec definition to codeclib as a supplemental codec.
Modify codec_store_accept_one() to preserve supplemental codecs whose
clock rate matches the accepted primary codec. Skip supplemental codecs
in codec_store_is_full_answer() since they are optional in SDP answers.
Closes#2100
Change-Id: Ie81f45091c5d3dc55e20896d5a6e7a8361fda2f4
In case of bitstream style codecs which still use an encoder which
operates on fixed frame sizes (e.g. G.726), passing the maximum allowed
frame/packet size to the packetizer is not enough. Instead it needs to
know separately how much data it is expected to return. Add another
argument to pass this information.
This also fixes the incorrect math to adjust the frame duration in case
of chunked output.
Change-Id: I1d57c684ecea055059481de0220f6b6001088605
Instead of taking an average, take the minimum over the last X frames.
This fixes skew calculation in situations where the encoder is expected
to produce burst output (e.g. G.726).
Probably the exception for media playback can also be removed.
Change-Id: I92e03916c04c670f6e8e72ad243a67d675504690
Skip initialisation of seq_out to a random number and track its init
state with a dedicated flag. Initialise it to the first received seq.
Change-Id: Iecdd3d28c5d6fe36d0a7488dd231767ff788942e
Don't blindly take over a source DTMF PT if one is present. Check if the
destination has _some_ DTMF PT, and only then take over the source. This
makes the behaviour more closely match the documentation.
One test is affected and seems to improve its outcome.
Closes#2091
Change-Id: Ibb9c1f79099fa30ac69ec71b4a4c71af0b88b327
Instead of always blindly picking the matching supp codec for the
receiver codec, pick it only if there is no appropriate sink supp codec,
or both are compatible (which implies a payload type mismatch).
Closes#2084
Change-Id: Ie401db500a038f60f3b4286e2067f90674c611df
Provide an extra codec-store for the lookup of the answer codec. This is
needed for codec switches during an extra answer, as the original codecs
are kept in a different codec-store.
Closes#2073
Change-Id: I7e2efc434789ecc8d3b5fcf97240e5c3f7c84652
Fixes regression from Ib4285e7aae
RTCP multiplexing requires the RTCP sender to maybe lock the same output
stream, maybe lock some other one. Allow for both.
Change-Id: I6fcef32e656f8f0de46ad777f11a19c259ce35c7
With selected_sfd being protected by in_lock, we pretty much have to
hold at least in_lock everywhere, and end up requiring both locks in
many places. The distinction has become pointless.
Change-Id: Ic0ad976c2d68d9639b9434da7f0e6e9c0d84c185
PTs that were remembered from a previous handshake to save codec options
must be flagged as such so that they're not considered as having been
present in the current offer, so that they can be flagged as transcoding
PTs.
closes#1989
Change-Id: I19c2aff7e83ed338a81be99544645821165304cd
... from packetizer function instead of putting it into the AVPacket.
Remove AVPacket from callback function arguments.
Fix up PTS/duration adjustments where they were missing.
Closes#1963
Change-Id: Ib36b36bb6648b0579dd83155c7217317dda29cc3