Commit Graph

92 Commits

Author SHA1 Message Date
Manawyrm 79aea14938 Add new clearmode codec support for data calls
This new codec will get handled like RFC4040 in yrtpchan, ysipchan
and will just be handled as alaw audio in zapcard/DAHDI.

The zapcard code will set the udi bearer cap to any calls with the
clearmode format (which would get sent via SIP/SDP).
2023-09-19 15:51:53 +00:00
marian 59e0b415c0 Mark 2*slin format info as valid candidate for conversion.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6481 acf43c95-373e-0410-b603-e72c3f656dc1
2021-04-19 09:31:35 +00:00
paulc c4c9e994f0 Renamed DebugGoOn to DebugCrit so it better matches its purpose.
Swapped order of DebugCall and DebugNote so DebugCall is less visible.
Changed default debug level to DebugNote.
Modified a few inadequate uses of DebugCrit.


git-svn-id: http://yate.null.ro/svn/yate/trunk@6250 acf43c95-373e-0410-b603-e72c3f656dc1
2017-08-01 13:08:23 +00:00
paulc c67312d159 Added extra checks for race conditions where CallEndpoint::setEndpoint() may fail.
Added convenience static RefObject::alive() method to check a RefObject pointer.


git-svn-id: http://yate.null.ro/svn/yate/trunk@6177 acf43c95-373e-0410-b603-e72c3f656dc1
2017-01-27 11:25:29 +00:00
paulc e43033d137 Added option to return a data sniffer safe and referenced.
git-svn-id: http://yate.null.ro/svn/yate/trunk@6175 acf43c95-373e-0410-b603-e72c3f656dc1
2017-01-26 15:32:39 +00:00
paulc 09ff4188b9 Added support for setting AMR and other codecs' parameters in SDP.
Build and package separately the AMR-NB and GSM-EFR codecs.


git-svn-id: http://yate.null.ro/svn/yate/trunk@6151 acf43c95-373e-0410-b603-e72c3f656dc1
2016-11-25 15:45:34 +00:00
paulc 37a72e4bc1 Added copyright notices to sources and scripts missing them.
Updated copyright notices for 2014.
Fixed end of lines in many files.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5755 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-05 11:42:17 +00:00
paulc 76fdb5ce75 Added support for counting allocated objects for memory leaks troubleshooting.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5752 acf43c95-373e-0410-b603-e72c3f656dc1
2014-02-04 16:36:23 +00:00
paulc cf5d0fd71a Changed license terms in each source file to reference an external file.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5609 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-06 13:38:10 +00:00
paulc 3b49b78ecb Added a shared static list of Atom strings and an YATOM macro.
This speeds up signifficantly the Yate RTTI on compilers that HAVE_BLOCK_RETURN.
Made the String comparison operator inline to shave off a few cycles.
Fast handle the comparison in identity case.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5449 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:19:14 +00:00
andrei 2a08c45703 Differentiate "No component could process the command" and "The component failed to process the command" in rmanager control output.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5396 acf43c95-373e-0410-b603-e72c3f656dc1
2013-02-08 15:23:06 +00:00
paulc 9d1203114b Linear interpolate audio data when upsampling to reduce artifacts.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5187 acf43c95-373e-0410-b603-e72c3f656dc1
2012-07-06 12:28:05 +00:00
marian bde556be12 Destruct the chain from the first translator when fail to build a new translator for the chain. This will avoid destroying a DataConsumer already attached to a source if the current translator is chained.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4726 acf43c95-373e-0410-b603-e72c3f656dc1
2011-11-25 12:37:45 +00:00
paulc edef21c123 Detach any remaining regular or override DataSource from a DataConsumer that is removed from a DataEndpoint.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4650 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-24 15:26:04 +00:00
paulc fa0269ba4f New YSTRING macro that creates an ad-hoc static const String to speed up comparations and conversions from literal strings.
On unsupported compilers the literal string is returned unchanged.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4423 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 12:26:53 +00:00
marian a17323af75 Avoid output buffer re-alloc if needed size don't change in various data translators.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3769 acf43c95-373e-0410-b603-e72c3f656dc1
2010-11-02 13:59:02 +00:00
marian ba08ab437b The SimpleTranslator is now keeping source and destination formats across Consume calls: avoid repetitive String alloc.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3768 acf43c95-373e-0410-b603-e72c3f656dc1
2010-11-02 13:43:03 +00:00
marian 467e2897f1 Lock DataSource while its translator is set. Safely retrieve the translator when a chain is detached.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3759 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-29 08:41:32 +00:00
marian a38fa1ba85 Added global mutex used to protect DataConsumer's source pointer changes.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3758 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-27 16:03:44 +00:00
paulc 3aeca0c8b8 Fortified codec chain destruction against invalid accesses.
Even if concurrent destruction can still happen it results in no more than a warning message.


git-svn-id: http://yate.null.ro/svn/yate/trunk@3667 acf43c95-373e-0410-b603-e72c3f656dc1
2010-09-23 14:37:48 +00:00
paulc 78d100265f Got rid of some long standing conversion warning by providing the proper casts.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3377 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-11 18:07:17 +00:00
paulc 13f64f0306 Added names to codec translator factories to aid in debugging.
Try all possible formats when attempting to crate a new chain.
Fixes some missing conversions like speex/32000<->slin.


git-svn-id: http://yate.null.ro/svn/yate/trunk@3165 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-02 14:28:27 +00:00
paulc 4cbbec1ebb Keep looping() in a ThreadedSource that has more than one reference even if it has no consumers. Prevents exiting on race condition between adding consumers and dereferencing.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3098 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-01 22:49:17 +00:00
paulc b7c28299d9 Hold the DataSource we are replacing referenced while detaching it from the consumer. This prevents crashes caused by races between replacement and destruction of a DataSource.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2979 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-07 11:43:00 +00:00
paulc 14b4e4a755 Added format info for G.729/G.729A.
Wavefile module can play or record raw G.729 files with extension .g729


git-svn-id: http://yate.null.ro/svn/yate/trunk@2856 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-23 15:07:50 +00:00
paulc dc35c215ae Added a validity check method to DataNode and some descendants.
A DataSource will remove invalid consumers that returned zero.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2854 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-23 14:50:51 +00:00
paulc 12a2ac9c0c Added parameter to ThreadedSource::looping() so it can keep running while it has consumers.
Fixed behavior of wave and tone "override" and "replace" methods.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2835 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 11:02:27 +00:00
paulc 2186793f38 The worker thread of ThreadedSource now keeps it referenced.
New methods of DataEndpoint, CallEndpoint and ThreadedSource allow easier handling of concurrent operations.
Modules using ThreadedSource were modified to use the new API.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2827 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-07 23:49:12 +00:00
paulc a2812051f2 Added Semaphore class, made Mutex derive from (new class) Lockable, made Lock able to get a lock on any Lockable - Mutex or Semaphore.
Use pthread_mutex_timedlock and sem_timedwait if available on platform.
Fixed a bug in the IAX channel exposed by Mutex having virtual methods.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2761 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-22 12:57:14 +00:00
paulc 8520218d2d Added flags to data forwarded through DataNodes.
The amount of consumed data is returned to the source.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2745 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-02 09:24:33 +00:00
paulc 2042e30ca4 Made DataSource inherit Mutex instead of having it as a field.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2614 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 20:49:05 +00:00
paulc 85da36395b Added names to the Mutex class to ease debugging of deadlocks.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2611 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-05 12:25:31 +00:00
paulc 380b59f1f6 Merged branches/marian/client up to rev. 2134.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2135 acf43c95-373e-0410-b603-e72c3f656dc1
2008-08-04 02:06:00 +00:00
paulc e7ba8b4b80 Reduce contention by dereferencing some objects after dropping mutex locks.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2009 acf43c95-373e-0410-b603-e72c3f656dc1
2008-06-03 16:20:32 +00:00
paulc ed876e9e58 Fixed potential crash in XDEBUG compiled code.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1580 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-04 18:37:28 +00:00
paulc 1ab9479903 Removed excessively complex expression.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1579 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-04 18:35:07 +00:00
paulc fdac0cd89a Added info message when one or both formats are not set.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1578 acf43c95-373e-0410-b603-e72c3f656dc1
2008-01-04 18:05:59 +00:00
paulc da79946d6e Changed the unlocking order to prevent races. Perform cleanups in the
destroyed() method instead of the destructor.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1357 acf43c95-373e-0410-b603-e72c3f656dc1
2007-06-08 18:33:33 +00:00
paulc e39385fdd5 Use TelEngine::destruct(obj) or GenObject::destruct() wherever applicable.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1325 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-15 15:40:50 +00:00
paulc f1f2706991 Fixed another stereo->mono conversion bug.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1296 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-05 15:57:08 +00:00
paulc 6c2027807a Fixed mono buffer allocation (fatal bug) and signedness of averaging.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1295 acf43c95-373e-0410-b603-e72c3f656dc1
2007-05-05 14:06:41 +00:00
paulc c7f5887cc8 Avoid useless mutex lock when thread is already gone.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1282 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-20 00:07:25 +00:00
paulc 74976838ee Fortified against a race condition that could lead to double deletion.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1279 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-18 00:51:28 +00:00
paulc 261bbc16ea Support for stereo a-law and mu-law, capability to write them to .au file.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1248 acf43c95-373e-0410-b603-e72c3f656dc1
2007-04-06 13:37:56 +00:00
paulc c013598dc4 Added static method that computes all transcodings possible from a given
format list.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1232 acf43c95-373e-0410-b603-e72c3f656dc1
2007-03-26 17:20:34 +00:00
paulc 8cbee58cd3 Replaced a possibly undefined code sequence with a slightly longer code.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1205 acf43c95-373e-0410-b603-e72c3f656dc1
2007-02-28 00:25:47 +00:00
paulc a90215a5cd Disable chained factories when one of the child factories is disabled.
git-svn-id: http://yate.null.ro/svn/yate/trunk@1173 acf43c95-373e-0410-b603-e72c3f656dc1
2007-01-22 03:53:17 +00:00
paulc 1ce9993eb2 Implemented an alternative way of destroying a ThreadedSource from the data
pumping thread itself, should fix most threading related problems.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1162 acf43c95-373e-0410-b603-e72c3f656dc1
2007-01-12 22:16:38 +00:00
paulc deefbe38b6 Fixed building chains of more than two translators.
Reference: last issue of bug report #60 by mikma.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1118 acf43c95-373e-0410-b603-e72c3f656dc1
2006-11-24 15:03:55 +00:00
paulc 887ffd5520 Fixed downsampler - correct signedness in averaging.
Fixed timestamp transformation in resampler.
Reference: first 2 issues of bug report #60 by mikma.


git-svn-id: http://yate.null.ro/svn/yate/trunk@1117 acf43c95-373e-0410-b603-e72c3f656dc1
2006-11-24 14:51:21 +00:00