Richard Fuchs
0dc052e2cc
TT#76711 globalise ensure_codec_def function
Change-Id: I2183ed5c7882b3e8909584425b1a37dd7da36124
6 years ago
Richard Fuchs
570ad9427d
TT#76711 add handler functions for enc/dec packet
Change-Id: I59b26793f233dde367cbe895f36642ebf58a7ab9
6 years ago
Richard Fuchs
9ff3d666b8
TT#76711 split out common parts of codec_handlers_update
Change-Id: I3d6d8364d797e14df9dd55a284096038872cca2c
6 years ago
Richard Fuchs
de69c5ed1f
TT#76711 split codec_handler_get for different protocols
Change-Id: I67573100108aedb1c8e7fc5920682a7872fd10c2
6 years ago
Richard Fuchs
d847d26e0b
TT#76711 convert codec handlers hash table to direct hash
Change-Id: Ieeb8183cd8041a10e311fb4f2fe6b92bbc5ad8bb
6 years ago
Richard Fuchs
be9caa37c7
also check for the output encoder
noticed through #941
further fix for 088c58d
Change-Id: I555d1d55d00124c75aa053c4c95abfd98d1ae44f
6 years ago
Richard Fuchs
088c58d88d
avoid calling a non existant encoder
fixes #925
Change-Id: I4743f0e87234fe3ddeb36b7355dcf80f651996c3
6 years ago
Richard Fuchs
7ea6389c56
compile fix for with_transcoding=no
closes #927
Change-Id: I0f53f31dce31990d999516173be4b483d90b4021
6 years ago
Richard Fuchs
38792c00a5
TT#75352 don't attempt to send uninitialised packets
This can presumably happen when an encoder gets re-initialised due to an
SSRC table overflow, or when a passthrough encoder (e.g. G.729) returns
no data.
Possibly fixes #915
Change-Id: Ib351054b99754f46d0a8fb2d49629ce7c48dc964
6 years ago
Richard Fuchs
7e0b2c4ac3
TT#75352 add a storage container for codec handlers
The hash table cannot be used for storage any more as entries can be
removed on demand (64e56d7 ) but can be cached in packet->handler at the
same time.
Possibly fixes #915
Change-Id: Ic74703b1a57294bfd704b6cddcd666d6063f510a
6 years ago
Richard Fuchs
18634c4202
TT#74301 refactor send_timer into generic timer
Change-Id: I81dae7ae8bb1bfe0324f9a8ce256cf9d1c377840
6 years ago
Richard Fuchs
1c72636983
TT#73401 remove useless assertion
Change-Id: Iba2597ad3138ef5b3b4199d2d436c3cbd7b9bd76
6 years ago
Richard Fuchs
64e56d774b
TT#73401 handle changes in RTP payload types
A client can potentially change the codec used for a RTP payload type
number, so we must confirm that an existing handler matches the codec
from the SDP.
fixes #903
Change-Id: Id9ae379425359f776883d6ace7fdb44ad651b37e
6 years ago
Richard Fuchs
2b87948014
fix compilation for with_transcoding=no
closes #884
Change-Id: I70492beed191de9ae7167990ee275c0eecc9bd80
6 years ago
Richard Fuchs
228d822a71
TT#68100 set iLBC encoder and decoder options
required to distinguish between 20-ms and 30-ms modes, both for encoding
and decoding
add support for the iLBC mode= format parameter and dynamic mode
switching
closes #854
Change-Id: Icb6f0ec80df86d27681c689c168b24f163a2db06
6 years ago
Richard Fuchs
3bf3982de1
TT#65052 support queuing up multiple DTMF events
Change-Id: I489194212a46d12761b3fdc1e212c78254b91427
6 years ago
Richard Fuchs
65fb99b31d
TT#66650 fix some SSRC refcount leaks
closes #841
closes #838
Change-Id: If96a3295ecc504c5e94eb113063cc20da7fb541e
6 years ago
Richard Fuchs
b14f3b2b1c
TT#64259 support injecting DTMF tones and events
Change-Id: I07aa7690146db5b41be479a67aaafbd66aec4033
6 years ago
Richard Fuchs
68d909c5ea
TT#64259 add functions to skip decoded samples and return encoder PTS
Change-Id: I9b4f39e214bf6ecb7ae25a8b3cc726041d6552c0
6 years ago
Richard Fuchs
35740cda35
TT#64259 add function to inject DTMF events
Change-Id: Ie84e2e8cad11e686c6e7010ca78ecba37c5dbf7e
6 years ago
Richard Fuchs
fd16bf5104
TT#64259 make DTMF detection switch explicit
instead of using the output DTMF payload type implicitly
Change-Id: Ib0882534d6e46759e9e5e1feb4a919fa6a9cd437
6 years ago
Richard Fuchs
ef20e021cd
TT#64259 split up codec handlers function
Change-Id: I09ef471d2500a098466bd546a197c08f6fc12ff9
6 years ago
Richard Fuchs
344b3b9e17
TT#64300 don't attempt to transcode to an unsupported codec
Change-Id: Ib4bad65472139f214bbb3896c1f9df29cc8e140e
6 years ago
Richard Fuchs
166aaa0c71
fix compilation for with_transcoding=no
closes #789
Change-Id: Ia0a50f77ae25b8af5e387d40b2b570285836e32d
7 years ago
Richard Fuchs
f960799cdd
TT#59703 add build test for dtmf_rx_fillin()
closes #787
Change-Id: I26ec7ebef74dad03192019b788e7c7ae17715783
7 years ago
Richard Fuchs
7ad9906178
TT#59650 fix DTMF related core dump when repacketising
Change-Id: I77b84c4b47ee41702b076a8a2f3259dc853654f1
7 years ago
Richard Fuchs
910c03fa62
TT#58660 PCM to RFC DTMF transcoding
Change-Id: Iea6a11c0caad1f5e7dcca966101e2969d3516b6f
7 years ago
Richard Fuchs
c0781e5193
TT#58659 RFC DTMF to PCM transcoding
Change-Id: I32fa876940131e3a18f611e2a518f7acd1327665
7 years ago
Richard Fuchs
194c9e482f
TT#58659 add optional encoder detour
If multiple codecs are encoding to the same destination codec, make them
all use the same encoder context
Change-Id: Iaf9b248f9fd2016fef2b576d24d3fba557d7c1f5
7 years ago
Richard Fuchs
db507468de
TT#59100 support case insensitive codec names
closes #775
Change-Id: Id54309bf0920e731ad42fb09b078580090f6f82e
7 years ago
Richard Fuchs
94f3c0eff7
TT#58659 remove redundant source PT definition
Change-Id: I399487120a7ed2eef39b8b0e3c113d62d5937903
7 years ago
Richard Fuchs
5acbf1ec87
TT#58659 always use the correct codec handler per packet
In case of out-of-sequence queued-up packets, the codec handler in use
was the one from the last packet delivered to the sequencer, which might
be a different one from the one needed for each packet coming out of the
sequencer.
Change-Id: Id7fb21328f7d181244a9be2ae5ff13cb6bad31b7
7 years ago
Richard Fuchs
9917e65599
fix division by zero for dtmf in some cases
closes #730
Change-Id: Ic917cc21d5c9a2012ae59d8c9c323114074fb300
7 years ago
Richard Fuchs
fb76ef74f8
TT#54800 fix ptime overrides
Adds a new option ptime-reverse to complement setting of ptime towards
the offerer. This and ptime setting are now ignored in answers.
Change-Id: Icbc04f191cbc194b75b72a97832fcaba58feb10e
7 years ago
Richard Fuchs
dc9f99763a
TT#54800 sequencing fixes
fixes incorrect seq when packets are consumed, as well as incorrect seq
for out of order packets
Change-Id: I0e2117ab68ccf5d0fa63b395a059aeb992f7dd13
7 years ago
Richard Fuchs
e1825e3577
TT#50652 ensure consistent RTP timestamp across media restarts
Change-Id: I96b72dd13c13728b4f401f42951fbc231cc36705
7 years ago
Richard Fuchs
8d9a0d247c
TT#50652 remove already enqueued packets when media is stopped
Change-Id: I0fd2a7100d331d341518888d2c591dbf84b2599d
7 years ago
Richard Fuchs
7e85d1a935
TT#50652 keep existing SSRC context when starting another playback
Change-Id: Ia4e64c39f870d0481847a67dd9c8dac1531e822d
7 years ago
Richard Fuchs
831946a8d4
TT#50652 fix compilation for with_transcode=no
Change-Id: Ie65827be7e27a6f77019a983a1ce131c11b694d3
7 years ago
Richard Fuchs
3bdad88063
TT#50652 create timer to gradually send packets without jitter
Change-Id: I5b28f7514f54c6df9f3ee607e3bca76274b431b3
7 years ago
Richard Fuchs
8874b4a31f
TT#50652 use random RTP TS when playing back media
Change-Id: I7b97877b0c6b7119cbfc6865f947895168af18fc
7 years ago
Richard Fuchs
92b08d899c
TT#50652 add media playback capability
Change-Id: I935812639e4f42cd89c4ecf02f5ae1a9a8243a65
7 years ago
Richard Fuchs
3374254899
TT#50652 split out codec payload type init function
Change-Id: Ifd71439179925961f25c828132d7afb207a4f344
7 years ago
Richard Fuchs
8f3c309c7f
fix always-transcode not being honoured when only codec-mask was used
reported in #664
Change-Id: I2cdfe405c61d48513a01393c5306fe4c875325ee
7 years ago
Richard Fuchs
6092c91ae4
TT#50652 fix possible sequencing bug while resampling
Change-Id: I5e0baec70892cbef9a9a036285379fe75ee3eba0
7 years ago
Richard Fuchs
497c2d6a8d
TT#49104 move RTP sequencing into SSRC context
Detect and handle RTP seq resets while transcoding and provide
consistent output seq
fixes #664
Change-Id: I063bd9432f253fde25e90cdeb4e3460a882f7778
7 years ago
Richard Fuchs
744d6a46ff
add codec-set option
Codecs that were implicitly accepted for transcoding had no option to
set their parameters (such as bitrate) for encoding. The codec-set
option adds this.
fixes #681
Change-Id: Ib238eb73a507af168c366579abc80da07250fe88
7 years ago
Richard Fuchs
ee01f15852
fix non-default encoder bitrate not being applied
Bitrates specified in codec-transcode-... options were applied to the
decoder created during the offer. The matching encoder only gets created
during the answer phase, at which point the specified bitrate must be
copied from the decoder.
fixes #681
Change-Id: Idc6a16a4493908d78bb0b48ae590aba046152af0
7 years ago
Richard Fuchs
0bf3eab4d6
convert codec ops to no-op for legacy control protocols
fixes #652
Change-Id: Ie6bc6529e43e3027cdcfc6cb22275b8b0145b69a
7 years ago
Richard Fuchs
326c6a5818
TT#43557 augment DTMF blocking to support directional blocking
Change-Id: I5d77b437fe746ac5f3b6c15d327755f9349b61d8
7 years ago