Commit Graph

20 Commits

Author SHA1 Message Date
David Vossel d760e81f37 Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff
-Functional changes
1. Dynamic global format list build by codecs defined in codecs.conf
2. SILK 8khz, 12khz, 16khz, and 24khz with custom attributes defined in codecs.conf
3. Negotiation of SILK attributes in chan_sip.
4. SPEEX 32khz with translation
5. SLINEAR 8khz, 12khz, 24khz, 32khz, 44.1khz, 48khz, 96khz, 192khz with translation
   using codec_resample.c
6. Various changes to RTP code required to properly handle the dynamic format list
   and formats with attributes.
7. ConfBridge now dynamically jumps to the best possible sample rate.  This allows
   for conferences to take advantage of HD audio (Which sounds awesome)
8. Audiohooks are no longer limited to 8khz audio, and most effects have been
   updated to take advantage of this such as Volume, DENOISE, PITCH_SHIFT.
9. codec_resample now uses its own code rather than depending on libresample.

-Organizational changes
Global format list is moved from frame.c to format.c
Various format specific functions moved from frame.c to format.c

Review: https://reviewboard.asterisk.org/r/1104/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@308582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-22 23:04:49 +00:00
David Vossel c26c190711 Asterisk media architecture conversion - no more format bitfields
This patch is the foundation of an entire new way of looking at media in Asterisk.
The code present in this patch is everything required to complete phase1 of my
Media Architecture proposal.  For more information about this project visit the link below.
https://wiki.asterisk.org/wiki/display/AST/Media+Architecture+Proposal

The primary function of this patch is to convert all the usages of format
bitfields in Asterisk to use the new format and format_cap APIs.  Functionally
no change in behavior should be present in this patch.  Thanks to twilson
and russell for all the time they spent reviewing these changes.

Review: https://reviewboard.asterisk.org/r/1083/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-03 16:22:10 +00:00
Sean Bright e612d87695 Convert a few places to use ast_calloc_with_stringfields where applicable.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@240368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-15 18:21:50 +00:00
Tilghman Lesher d8e0c58437 Expand codec bitfield from 32 bits to 64 bits.
Reviewboard: https://reviewboard.asterisk.org/r/416/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04 14:05:12 +00:00
Russell Bryant a05f90e709 minor tweak
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199372 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-06 21:42:31 +00:00
Russell Bryant 338e22b866 Constify a string and strip trailing whitespace.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-06 21:40:56 +00:00
Kevin P. Fleming e6b2e9a750 Const-ify the world (or at least a good part of it)
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:

- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments

In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.

Review: https://reviewboard.asterisk.org/r/251/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-21 21:13:09 +00:00
Olle Johansson bb03eef676 Making sure we have references to external libraries.
Note: Update h.323 with the recent changes too


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@188283 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-04-14 14:20:10 +00:00
Russell Bryant bca058070e Fix build WRT ast_str_opaque
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@164202 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-15 14:40:08 +00:00
Russell Bryant 5b168ee34b Merge changes from team/group/appdocsxml
This commit introduces the first phase of an effort to manage documentation of the
interfaces in Asterisk in an XML format.  Currently, a new format is available for
applications and dialplan functions.  A good number of conversions to the new format
are also included.

For more information, see the following message to asterisk-dev:

http://lists.digium.com/pipermail/asterisk-dev/2008-October/034968.html


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 21:10:07 +00:00
Russell Bryant c0c743a5fa Update instructions for getting libresample
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-02 15:11:53 +00:00
Kevin P. Fleming ec4952cf73 stop using deprecated API call
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@136504 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 17:26:23 +00:00
Russell Bryant c87f901cfd Remove libresample from the Asterisk source tree. It is now available in its
own repository, and must be installed like any other library for Asterisk to
use.  The two modules that require it are codec_resample and app_jack.

To install libresample:

$ svn co http://svn.digium.com/svn/libresample/trunk libresample
$ cd libresample
$ ./configure
$ make
$ sudo make install

This code is currently in our own repository because the build system did not
include the appropriate targets for building a dynamic library or for installing
the library.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@132390 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-21 14:47:41 +00:00
Russell Bryant 5de127e103 Enable higher quality resampling, as it doesn't have a noticeable performance
impact on my machine ..


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@132388 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-21 13:51:05 +00:00
Jason Parker f7eb823a7a Fix a few places where frame data was used directly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 17:10:53 +00:00
Russell Bryant ea3fb96b29 Re-introduce proper error handling that was removed in recent commits.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115850 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-13 17:42:17 +00:00
Claude Patry dfe475cc59 ameliorate load and unload to dont use DECLINED or FAILED, when theres no .conf involved.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@115594 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-10 03:28:50 +00:00
Russell Bryant 01f3a08f8a Add a c() option for the Jack() application and JACK_HOOK() funciton for supplying
a custom client name.  Using the channel name is still the default.  This was done
at the request of Jared Smith.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-22 16:47:00 +00:00
Russell Bryant 577666bca0 Add another small option for the JACK app and JACK_HOOK function. The 'n'
option tells JACK not to start jackd automatically if it is not already
running.  Otherwise, the default is that jackd will get started for you if
it isn't running already.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-14 04:53:08 +00:00
Russell Bryant f32aec9f8f Bring in the code from team/russell/jack/.
Add a new module, app_jack, which provides interfaces to JACK, the Jack
Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
provided; there is a JACK() application, and a JACK_HOOK() function.  Both
interfaces create an input and output JACK port.  The application makes
these ports the endpoint of the call.  The audio coming from the channel
goes out the output port and whatever comes back in on the input port is
what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
audiohook on the channel.  This lets you run the audio coming from a
channel through JACK, and whatever comes back in is what gets forwarded
on as the channel's audio.  This is very useful for building custom
vocoders or doing recording or analysis of the channel's audio in another
application.

In case anyone is curious, the platform that inspired me to write this is
PureData (http://puredata.info/).  I wrote these JACK interfaces so that I
could use Pd to do interesting things with the audio of phone calls ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-13 19:19:57 +00:00