... as an extra offset for newly added sources, based on the difference
between the last runtime (read time) of the buffer and the current time.
Change-Id: Ie99e24f0697f0950f0fcfa1e5e58b8f4be134018
A simple circular audio buffer that allows mixing multiple sources of
audio. Sources are tracked by SSRC and all sources are expected to
provide audio in the same format (same clock rate, channels, sample
format).
Only one consumer per buffer is supported, which is expected to retrieve
buffered audio at regular intervals (ptime) and so continuously empty
the buffer.
The first audio source to write into the buffer at the leading edge of
the circular buffer has its audio simply copied into the buffer, with
the leading edge advanced, while other later sources writing into the
buffer mixed into the existing buffered audio at their respective write
positions.
Change-Id: I0f6642b036944508f2a33420359de488ef8b991c
Convenience function to check whether any formats have changed, which
would indicate that a restart of the media player is needed.
Functional no-op.
Change-Id: I2bc9b57b95bb229bc4f8cfc49ca662fa724d3642
We have to restructure project's general README.md
in order to make all recently added documentation sources
(including RTD) be compliant and let it look centralized and
good organized.
The root of the repository still has the README.md, but
it only shows general summary on the project and then gives
links to the extended documentation sources:
- RTD stored
- GitHub stored
Change-Id: Ief160669432ecb3e22df16d9278df863da995991
Deprecate `asserts/` as it's only used for keeping images now.
(github wiki links fixed accordingly)
Create `docs/images` to keep visual materials and to properly
link them from the RTD with markdown.
Change-Id: Icbb8b22c57e087a57495b37bd7ecd1a15de05b43
(cherry picked from commit 99e0d936503a9026dbd55e2e0606b45853abb53b)
We have to unify the approach we use for setting these main blocks
of the documentation to let it: 1) be unified; 2) be compliant
with RTD.
Change-Id: Ifc1f491c14688f0151429a80c8a0cfb1e6a22aaa
This is a first commit introducing general readthedocs wiki
structure.
It introduced the following main chapters:
- Overview (is a symlink to the README.md), the readthedocs
parses the markdown from here and creates the overview page
- Architecture overview (with the sources taken from the git wiki)
- Unit-tests (with the sources taken from the git wiki)
- Troubleshooting Overview (now only memory leaks)
- Glossary (doesn't have much information for now)
Change-Id: I1a7db7ab1b169a5d002d251debbe1ad0f5d195ce
The test number 1142:
"SDP attr manipulations - add a= line for media audio, two times"
used to fail on the buster builds, because of the hash tables
implementation we had in the `command_values` of the `struct sdp_command`.
It didn't necessarily keep the same order, as was used to add values.
Now as the SDP manipulations structures is re-designed, we can re-add it.
Change-Id: Icc7d030894d45c9d62e91669915eafb348d05d97
In order to improve the efficieny of the code (make lookups
faster) use GQueues for CMD_ADD manipulations and
GHashTable for CMD_REM manipulations.
This gives the following benefits:
- faster lookup (check), if any SDP command is to be applied
(no need to iterate through all values of commands, as it used to be)
- keep a sequence for CMD_ADD values given by option flag(s)
In order to keep the code more lightweight and clear,
add a separate struct ptr to queues and hash tables into
the call_interfaces header.
Change-Id: I7e45aca4062750c7b8959473edb410ed76cc04e7
Debian stretch has an old libcurl which doesn't support MIMEPOST.
Disable the entire feature if libcurl is too old.
Change-Id: Id1d2a4d821671142523af355188f21ff06ad20f1
The test number 1142:
"SDP attr manipulations - add a= line for media audio, two times"
fails on the buster builds, because of the hash tables implementation
used in the `command_values` of the `struct sdp_command`.
It doesn't necessarily keep the same order, as was used to add values.
Temporarily removing it, until the `struct sdp_command` is re-designed.
Change-Id: I077771c00c5dc8907e42d7757540e3ffa2063af6
Don't change to a new port for sendonly streams as this causes problems
with NAT. A device receiving a sendonly SDP with a new port won't send
any RTP to the new port, leading to a closed (non existent) NAT mapping.
Change-Id: I2ea2163eb9f1203226bd781b53f421c790a86f0a
The old port latching logic was simply to use the last (newest)
allocated endpoint_map. This turned out to be wrong, because the last
used socket on the monologue could have been one that was allocated
earlier (and older endpoint_map), as it can happen during repeated
re-invites. Add a new function to actually look for the correct
endpoint_map, matching the currently used socket, to make sure the port
doesn't change.
Change-Id: Iae768fe48539264575aed67cbbb6b08ac745130f
These are the entries the kernel will try to look for when userspace
tries to use the RTPENGINE support, but the module is called
xt_RTPENGINE so the kernel does not find it and thus cannot autoload
it.
The problem is that we have startup code that sets up iptables rules,
and will fail if the module has not yet been loaded. By adding these
aliases we are no longer concerned about the ordering, and can let the
kernel autoload the modules when they are needed.
Change-Id: I43a54af4e32adf755538c57df711da048c720030