Make sure G.722 rate multiplies is applied in the right places
Don't trust encoders to return proper timestamps, but instead track them
explicitly based on frame duration
Change-Id: Ia9fa96cf662da97159fa170c3a3f37516889e1bd
When set to `false`, no changes at all. (default)
When set to `true`, bind only one desired family local address.
Also add info in rtpengine.pod file.
Also add log for sfd with no call.
close PR #1133
Squashed commit of:
commit b5009eff0b
Author: SPChan <shihping.chan@gmail.com>
Date: Fri Dec 11 11:40:17 2020 +0800
crypto.c: handle 12 bytes master salt length of AEAD
AEAD RFC7714 specifies 12 bytes master salt length
(section 12) but the KDF expects 14 bytes.
The erratum to RFC7714 specifies to pad on the right
by 16 bits to be compliant with the KDF.
https://www.rfc-editor.org/errata_search.php?rfc=7714
commit 30ba71f10c
Author: SPChan <shihping.chan@gmail.com>
Date: Fri Dec 11 09:31:00 2020 +0800
crypto.c: AEAD make clear which operations are for AAD
commit 3e4d87681d
Author: SPChan <shihping.chan@gmail.com>
Date: Thu Dec 10 19:38:51 2020 +0800
Implement RFC7714 ciphers: AEAD AES
Initial userspace only implementation
Change-Id: I8624b255e4fd83a5ca418655ef117c48e56e2379
If a supplemental codec was removed by the codec tracker, we must reset
any codec handlers on the opposite side that were using this output
codec.
Change-Id: I7fb9d0ec7a061682fe3b28d9ead14ac263aff7c3
Sequence of events:
1) HTTP request is being handled in worker thread by calling the handler
func() from within websocket_process().
2) Handler func generates output, queues it up, and requests a
`writeable` callback from within websocket_write_raw().
3) Main LWS thread triggers writeable callback and calls
websocket_dequeue().
4) Output is given to LWS still within the main LWS thread, and finally
lws_http_transaction_completed() is called to release the connection
and ready it for the next HTTP connection.
5) LWS internally cleans up the connection and frees the user context
(our `wc` struct).
6) The worker thread wakes up and continues to use the now invalid `wc`
in order to clean up after it has done its job. Boom.
The solution is to handle the `drop protocol` callback, which is
triggered by LWS in the main LWS thread in step 4 from within
lws_http_transaction_completed(). We call our own connection cleanup
function websocket_conn_cleanup() which blocks until all jobs are
removed from `wc` (step 6) and only then continue, allowing LWS to
safely free the struct.
Change-Id: I596a98e9b552a96aef259f4523f16fa63c287ef4