Multiple writers may operate on a single WS connection simultaneously.
Make sure they don't get in each other's way while constructing their
messages/responses by holding the lock from the beginning of the
response until the point when it's fully ready. This fixes a problem of
parts of multiple messages getting mixed up with each other.
Change-Id: If84224fc06b423cd65c12981a5b09ee99b121df2
(cherry picked from commit 1480574001)
Looks like partial writes are handled automatically internally, but add
a request for a "writeable" callback anyway so we know when we can write
more.
Closes#1943
Change-Id: I86a8e1924febc0524b90dc6559753e12e0de9dfb
(cherry picked from commit 9db8925846)
This makes it possible for the BIO callback to access these values,
instead of obtaining possibly mismatched values from packet_stream.
Restores behaviour prior to 5331506Closes#1996
Change-Id: I74ccb82f1739ca98eb033e68df4e27619ca7e46a
(cherry picked from commit 271b3b1520)
We already use the `dtls_connection` object as "app data" so let's use
it for the BIO callback arg as well.
Change-Id: I715b6756ea36c7a3cb2bed68fce17108eb480e23
(cherry picked from commit 8297449aa1)
The service unit file installed by the package uses type=notify,
so it must also be built with systemd support.
Change-Id: I56dd32a160fceeaa0771b11e682e8c0366a23a61
(cherry picked from commit e9717df6b5)
Avoids redundant loop iteration.
Also change log level to INFO to match all other log output.
Change-Id: I5587c59398656dc03fcb346edcbc48f350a4a392
(cherry picked from commit d7d7a98071)
RFC says that annex B is the default in the absence of the annexb=no
format string. Consider the alias "G729a" as annex A.
Closes#1951
Change-Id: I9a8483ee5520bf4688601123f1ebec4f1f480642
(cherry picked from commit 3df26cf2d0)
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
(cherry picked from commit cec0afa25e)
(cherry picked from commit d1d4110f0f)
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
(cherry picked from commit e03f814855)
(cherry picked from commit 222fcaa4b0)
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
(cherry picked from commit f2a9111fb6)
Supports obscure situations where the old 32-bit timestamp is returned
Change-Id: I8423cd04baa9fd49e254d88d17e3e609ee5a20bb
(cherry picked from commit c0b245b979)
Reverses the side effect of I225b43dff
Restores consistency and fixes tests and very slow systems
Change-Id: Ib4285e7aae95cd58eccd1d3c4f84e5786b4b0810
(cherry picked from commit ffacde5748)
Fix for "opus<>opus+DTMF" auto test.
Receive when port is already known.
Fixes:
Use of uninitialized value $port in numeric eq (==) at ../perl/NGCP/Rtpengine/AutoTest.pm line 239.
Change-Id: Ic0089bae769ccafeb7145e703a6e21029da85a97
(cherry picked from commit 2f664bc72e)
Protect selected_sfd with in_lock.
Protect RTCP sending with in_lock and out_lock as appropriate.
Has the odd side effect of RTCP reports expected in tests to be sent one
packet later than before.
Closes#1966
Probably fixes#1927
Change-Id: I225b43dff8e8fbb938d3be6aad50249997615d77
(cherry picked from commit ffc539c0d8)
Using `l->next` as a test for whether only one element is left in the
list is not reliable. Use the actual list length instead.
Update one affected test.
Closes#1961
Change-Id: I5773715700220cd762e61090bac941ddd33afd9b
(cherry picked from commit 02897ccb46)
In some cases, in particular when multiple input codecs are transcoding
to the same output codec (e.g. audio + DTMF -> audio), it's possible
that one of the input decoders produces frames in a format different
from the one expected by the encoder. Add an encoder-side resampler to
compensate for that.
Change-Id: I74d55edf47ac2fa65f950e68f4a5975f1ab947bb
(cherry picked from commit 461f663e58)