Richard Fuchs
4deff72c8e
TT#136957 don't remove DTMF PT from SDP with DTMF-delay active
Change-Id: Ia5c265575464066e8fdd587079bc843e838c5c62
4 years ago
Richard Fuchs
d055a5da59
TT#136957 add `egress` subscription support
Change-Id: I10bde2adf351529a20e21c376ef2040a19896f83
4 years ago
Richard Fuchs
84fed5ca7e
TT#136957 obsolete TRANSCODE flag
Change-Id: I7307b63a8f5a10aa3b5c98fb48218bcc7a123441
4 years ago
Richard Fuchs
2240921ab3
TT#136957 use separate sequencer per sink/destination
Change-Id: Ib960108003d5aa13ba1732d7a5e8c6720feca5c0
4 years ago
Richard Fuchs
c0d9f84e49
TT#14008 rename instance of `func` for clarity
Change-Id: Ie61bc4e9ea8bcd4fdf540cce67acb8032eecff63
4 years ago
Richard Fuchs
5b2fec710e
TT#14008 flag coverity false positive
`media` is a read-only value in the struct and so does not need to be
protected by the lock.
Change-Id: If9a0e996ac093a755325c33fa18fbfe518635d0b
4 years ago
Richard Fuchs
abc79448c7
TT#14008 shut down codec background tasks during re-invites
Change-Id: I061772866f25532341b568ae7acc8c919e776712
4 years ago
Richard Fuchs
aae30a4f72
TT#14008 fix possible use-after-free
Change-Id: I454d07f339e689bbc349ffef774ded6ef163e985
4 years ago
Richard Fuchs
b259af6e84
TT#136957 double free fix for 3a90f4438
related to #1434
Change-Id: I70899b3cff2a5dcef9d6cba91fa09bdd6f505897
4 years ago
Richard Fuchs
22d8db9e72
TT#14008 don't accept stray answer codecs that were not offered
Special handling for codec lists that were received as part of an
answer: If the list includes a codec that was not offered, ignore that
codec. This prevents transcoders from being set up that were not
requested.
This brought to light some tests that were actually broken.
Change-Id: Iac71056ec5e10b5de5567917974f2c4e0261eb0c
4 years ago
Richard Fuchs
6d1dfab77a
TT#14008 convert logging context to stack
This is useful for functions which are used both from a timer and from
other callers. These functions would reset the logging context at their
end to free the reference held by the logging context, which would
wrongly reset the logging context when the same function was called from
a different code path. Using a stack with push/pop semantics makes it
safe to use these functions from any code path.
Additionally introduce an explicit reset function that clears the entire
stack regardless of context. This reset function is called at the end of
every work iteration in every worker thread, just in case not everything
was popped from the stack.
Change-Id: I0e2c142b95806b26473c65a882737e39d161d24d
4 years ago
Richard Fuchs
60fe7104e7
TT#14008 fix possible unintentional integer overflow
Change-Id: I9dacb34cf92d461029bfb393a251736676431fc7
Warned-by: coverity
4 years ago
Richard Fuchs
4be6ff2b07
TT#14008 fix warning as `ch` cannot be NULL
Change-Id: I2f627190e82e4bc1fe4b3f3b7a1a5925b581808c
4 years ago
Richard Fuchs
0cc41a56ff
TT#14008 fix warning as `output_ch` cannot be NULL
Change-Id: I3c079fc9fdca96d6ee2dbdfc17fd3834abc0e815
Warned-by: coverity
4 years ago
Richard Fuchs
28e3ca3dce
TT#14008 fix possible NULL pointer dereference
Change-Id: I601676f2cb1722d936e055ab7270b6668150b4ba
Warned-by: coverity
4 years ago
Richard Fuchs
3582b623a9
TT#136957 DTMF delay support
Change-Id: I62dce272a1acc0a9a3b6b8c37df68a18357dbee4
4 years ago
Richard Fuchs
1ef4eeba80
TT#136957 split up DTMF event queue into in and out
Change-Id: I2e0619071d43df8537736187104ca12bb2f86f64
4 years ago
Richard Fuchs
c794c00efa
TT#136957 refactor DTMF event tracking into a list
Change-Id: I09aec46cad4cbb92aab67b7e9158d4d1598df186
4 years ago
Richard Fuchs
3a90f44383
TT#136957 peg seq num tracking to position in delay buffer
Change-Id: Ic78f24d2593817832839d3e1cf7ce3b398be785e
4 years ago
Richard Fuchs
2ca64340e1
TT#136957 support DTMF triggers for blocking
Change-Id: I32e0d02e739ceb5a34aaf187b1ea086482e6d73e
4 years ago
Richard Fuchs
6ac4f12c01
TT#136956 add more options for DTMF replacement
Change-Id: Ic78a34042ad664bd54e35647636864ea99e60385
4 years ago
Richard Fuchs
576774614b
TT#136956 add support for DTMF-security=zero
Change-Id: I48d612697ac3f89852b2b7374cf6e442e4a8222e
4 years ago
Richard Fuchs
9da5a46fcb
TT#136956 support DTMF-security=random
Change-Id: I4100c1511be743901d302491238872990f213118
4 years ago
Richard Fuchs
320642ddf2
TT#136956 support DTMF-security=tone
Change-Id: Ide898f68d788f39674b8fdb4f4edb0aa14e0884b
4 years ago
Richard Fuchs
20ae998d32
TT#136956 flush delay buffer at shutdown
Change-Id: I1e58668071abad00520e83004bcf716fae85ae6a
4 years ago
Richard Fuchs
38f97c2df8
TT#136956 support DTMF silence replacement
Change-Id: If693800a955a9ddf7245da0082426ae609deb407
4 years ago
Richard Fuchs
478c2608e8
TT#136956 upgrade `block_dtmf` to enum to allow for different modes
Change-Id: I8bfa1cb9067a00958a2a1415b82e01c02deaf758
4 years ago
Richard Fuchs
1ce4f66d74
TT#136955 trigger DTMF state also when decoding DTMF to PCM
Change-Id: I8a8522ecd5d370bac7f4f8846651362efccf190e
4 years ago
Richard Fuchs
ba556db1d4
TT#136955 tie in DSP DTMF events with other DTMF reporting
Change-Id: I72fe6b670c42fe4ed6ba32a1fd142c290b2aaca2
4 years ago
Richard Fuchs
e7edfc03b4
TT#136954 add explicit flag to en/disable DTMF detection
Change-Id: I0da522ec5b195d580b44e6c5d0cfc42b73a8ac4b
4 years ago
Richard Fuchs
975cd33a9c
TT#136954 switch pcm_dtmf_detect to bool type
Change-Id: Ia78c2123bd5094e12895e82223ded49921efcbe2
4 years ago
Richard Fuchs
19a5d3cdb0
TT#136953 use delay_buffer for passthrough streams
Change-Id: I7e740f0bb3b45a500f316bbafab549ee5c9ae5c6
4 years ago
Richard Fuchs
8e8e78afb1
TT#136952 add new delay_buffer struct
Change-Id: I8b3b663d3688f1872b059791381fc8e2034c7293
4 years ago
Richard Fuchs
cf7dcb31be
TT#14008 add fallback if codec list is empty
reported in #1374 and #1380
Change-Id: Ie12453a0526ed202c298d06d18b6782105c9fade
4 years ago
Richard Fuchs
3535d96fda
TT#136957 fix TS tracking with supplemental codecs
Supplemental codecs such as DTMF use static timestamps while the event
is ongoing, leading to a TS jump when the RTP flow changes back to
audio. The sequencer needs to be aware of this so it doesn't mistakenly
see the next audio packet as overdue and starts to process it
prematurely.
Change-Id: I2faea9aceec21fc04920f6c3c94141725383379f
4 years ago
Richard Fuchs
f79593ecc9
TT#136957 use output PT clock rate instead of encoder clock rate
... for scheduling output RTP packets. This is mostly relevant for DTMF
packets which don't have an associated encoder when being forwarded.
Change-Id: I56ee94a9ac7f42cc65eec0703bf042065687e43f
4 years ago
Richard Fuchs
757cee2125
TT#136957 correctly schedule send-now RTP packets
Change-Id: Ie96324329dae131f24784916911189dd8cf3d6b8
4 years ago
Richard Fuchs
a7e22ba698
TT#147451 add support for multi-ml subscriptions
Change-Id: I1ff9861840bc743068eac2cd18d81990d44acdc9
4 years ago
Richard Fuchs
77be8a00b0
TT#136952 add convenience function to reset all codec handlers
Change-Id: I690b1a6c3388c47ba97fadb2b8740eff8706884f
4 years ago
Richard Fuchs
61ad51b926
TT#136955 only do DTMF event output if we have a PT
Change-Id: I2c322a3a1ff18cbb3191025607af030c0651e642
4 years ago
Richard Fuchs
fdb529eb5a
TT#136955 refactor DTMF event reporting
Change-Id: I420f56674a639a4b41b5333d8d9b8ffa843a7042
4 years ago
Richard Fuchs
740bdb4295
TT#136957 reset SSRC sequencers when going to transcoding
Change-Id: I98110a3d298b4ef7884ddfe2fdc931b338d40dc7
4 years ago
Richard Fuchs
bcb912bc27
TT#136952 allow passing user data to ssrc_hash_foreach
Change-Id: Iea158f06901de33ad9b53f8c277011b859cb214a
4 years ago
Richard Fuchs
730cc646a8
TT#14008 eliminate duplicate DTMF reports when forking media
With multiple media subscriptions, codec handlers are called
consecutively, once for each forwarding chain, leading to DTMF events
reported multiple times. The DTMF trigger must therefore keep track of
the state in the upper media object, not in the codec handlers.
Change-Id: I9ceaf406e093f25b7c037a325a0f2a7a91954922
4 years ago
Richard Fuchs
e6405c4a2f
TT#14008 add locking for `bypass_seq` case
Some functions (packet_dtmf in particular) called from the sequencer
depend on upper-level locking, so make sure this happens even if we're
bypassing the sequencer and do passthrough.
Change-Id: I6c729c3ba8075736fd614b8c06e3415b9c9e5ca7
4 years ago
Richard Fuchs
47e9f22442
TT#109800 add special handling for dtx-shift=0
Change-Id: I7e99f60476e74eb38b215573eb7d574f09b4c31a
4 years ago
Richard Fuchs
0c2f990561
TT#109800 fix output seq num bug
Change-Id: I68bc61982806ba1a48931030fdee26bcd75f1858
4 years ago
Richard Fuchs
00a76df639
TT#109800 refactor DTX timer drift handling
Change-Id: I73ba6cf188ca2cf62829539a7e76107c9dcd8989
4 years ago
Richard Fuchs
24f607752c
TT#145450 add support for tracking multiple SSRCs per stream
Change-Id: I885fbf7973133af8d7c9184eb0e75f5401309c8e
4 years ago
Richard Fuchs
834eb034af
TT#14008 add packet loss tracking for userspace passthrough
Change-Id: Id2ea329333a4236389e2a2b567fba76ffc7cea5f
4 years ago