Introduce global generic memory arena variable, instead of having just
a call-specific memory arena. This makes it possible to use memory arena
outside of call contexts. Define previous call-specific functions in
terms of the generic ones.
Change-Id: Icde4f63f02dacbf8abfbaf107ea8b5bbe18d5eb8
Add support of rtpp_flags parsing for the daemon.
From now on, it's possible to parse option flags
on the daemon side instead of the kamailio module.
It's identical to what the module does, but the
difference is:
- module sends general call identification such as:
call-id, From/To tags, viabranch using bencode
- meanwhile all generic/non-generic option flags
are added to the `rtpp_flags` bencode member as str
- parsing of that is done as usually using the
`call_ng_main_flags()` / `call_ng_flags_flags()`
and additionally using new parser `parse_rtpp_flags()`
New file implementation and header introduced:
- control_ng_flags_parser.c
- control_ng_flags_parser.h
Otherwise no functional changes, and the parsing itself
remains working following the same algorithm.
Change-Id: I59e47fa1947e2aeaa0bbf3930a0f21d9a6d669ad
These had unintentionally been disabled and so have fallen derelict.
Replace the makefile `with_amr_tests` conditional with
`RTPENGINE_EXTENDED_TESTS`. The previous `with_amr_tests` was not
actually set anywhere and so these tests never ran. The new
`RTPENGINE_EXTENDED_TESTS` is used as switch for other tests already.
Bring the tests up to date so that they compile and run.
Allow for alternative AMR bit encodings as different versions of the
codec produce different outputs.
Use an inline `struct cb_args` to pass these expected strings to the
callback functions.
Update `int` to `size_t` where appropriate.
Make a copy of the format string in `__sdp_pt_fmt` as the parsing
function temporarily writes into the string, which means a readonly
string literal doesn't work.
Update the AMR tests in test-transcode to the new API and new expected
values.
Change-Id: Ic3332e696522a28595ea06be9996001d3ab7686e
Similar to the existing media_player, but instead of simply producing
its own standalone output media stream, the audio_player takes over the
entire media stream flowing to the receiver, including media forwarded
from the opposite side of the call, as well as media produced by the
media_player.
Change-Id: Ic34ecf08fc73b04210cfffb1a7d795b462ece5ea
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
Rename test suites from *-test.c to test-*.c as the former is
conflicting with the file name pattern of the build tests, which are
listed in .gitignore.
Change-Id: I8779fac492510c0996bdcb2c6250c07536fe3b63
To avoid repeated strcmp()s and make use of switch()'s optimised binary
lookup, we employ a second build step that preprocesses certain .c files
and uses gperf to substitute pseudomacros with their respective constant
hash value.
Change-Id: Id89c4728a0fc7aa911691d4dd1ba8e7b3916a983
Instead of just remembering the last seen RTP payload type, this adds a
tracker that keeps track of the last 32 seen payload types and keep the
list in order of how often each type was seen.
Change-Id: I062a43b7bfc9413b755dca548d72953ff8245477