Commit Graph

308 Commits

Author SHA1 Message Date
Shaun Ruffell
e731e26bee Several changes to codec_dahdi to play nice with G723.
This commit brings in the changes that were living out on the
svn/asterisk/team/sruffell/asterisk-1.4-transcoder branch.  codec_dahdi.c now
always uses signed linear as the simple codec so that a soft g729 codec will
not end up being preferred to the hardware codec.  There are also changes to
allow codec_dahdi.c to feed packets to the hardware in the native sample size of
the codec.  This solves problems with choppy audio when using G723. 


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@176810 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-18 00:34:38 +00:00
Jeff Peeler
e0bec5d67d (closes issue #13480)
Reported by: tzafrir

Replace a bunch of if defined checks for Zaptel/DAHDI through several new defines in dahdi_compat.h. This removes a lot of code duplication. Example from bug:

#ifdef HAVE_ZAPTEL
  fd = open("/dev/zap/pseudo", O_RDWR);
#else
  fd = open("/dev/dahdi/pseudo", O_RDWR);
#endif

is replaced with:
  fd = open(DAHDI_FILE_PSEUDO, O_RDRW);



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@165991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-19 19:48:00 +00:00
Kevin P. Fleming
187f6d485a the gcc optimizer frequently finds broken code (use of uninitalized variables, unreachable code, etc.), which is good. however, developers usually compile with the optimizer turned off, because if they need to debug the resulting code, optimized code makes that process very difficult. this means that we get code changes committed that weren't adequately checked over for these sorts of problems.
with this build system change, if (and only if) --enable-dev-mode was used and DONT_OPTIMIZE is turned on, when a source file is compiled it will actually be preprocessed (into a .i or .ii file), then compiled once with optimization (with the result sent to /dev/null) and again without optimization (but only if the first compile succeeded, of course).

while making these changes, i did some cleanup work in Makefile.rules to move commonly-used combinations of flag variables into their own variables, to make the file easier to read and maintain



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@157859 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-19 21:34:47 +00:00
Shaun Ruffell
54388197d2 Fix bug where the samples were not accurate when in G723 mode, which would
cause the timestamp field of the RTP header to be invalid.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@139151 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-20 19:52:25 +00:00
Kevin P. Fleming
5a0918d421 look for transcoder in proper place based on build against Zaptel or DAHDI
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@138663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-18 16:57:27 +00:00
Kevin P. Fleming
e797e4ed72 add support for Zaptel versions that contain the new transcoder interface
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@137677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-14 02:02:15 +00:00
Shaun Ruffell
b6501cdb43 Updated codec_dahdi to use the new transcoder interface in the first DAHDI
release.  Codec dahdi no longer functions with the transcoder interface in
zaptel at this time (which the last zaptel release was 1.4.11).

NOTE: Still needs an update to the configure script to make sure that
codec_dahdi is only built if the new transcoder interface is present in the
drivers.

(Issue: DAHDI-42)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@136544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-07 18:14:17 +00:00
Kevin P. Fleming
7b61edde36 build against the now-typedef-free dahdi/user.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@134254 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-29 22:05:57 +00:00
Jeff Peeler
f9818af8dd Adds DAHDI support alongside Zaptel. DAHDI usage favored, but all Zap stuff should continue working. Release announcement to follow.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@122314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-12 19:08:20 +00:00
Joshua Colp
6e6849f1a0 Make sure that either the main speex library contains preprocess functions or that speexdsp does. If both fail then speex stuff can not be built.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@115327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-05 22:10:05 +00:00
Jason Parker
831a7f2720 Allow gsm to compile correctly on x86 with gcc4 optimizations.
(closes issue #11243)
Reported by: whiskerp
Patches:
      11243-maybe-asm.diff uploaded by qwell (license 4)
Tested by: Seggy (IRC)

Note: While I did write this patch, I would not have found this if fossil
 had not reported and fixed issue #12253.  A huge thanks to him for helping
 to (indirectly) find the problem here.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@111856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-28 21:45:35 +00:00
Kevin P. Fleming
bf1486e917 Merged revisions 110869 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r110869 | kpfleming | 2008-03-26 08:53:46 -0700 (Wed, 26 Mar 2008) | 2 lines

due to licensing restrictions, we cannot distribute the source code for iLBC encoding and decoding... so remove it, and add instructions on how the user can obtain it themselves

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@110880 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-26 16:42:35 +00:00
Jason Parker
d85d47e343 Don't attempt to do optimizations of gsm on mips platforms either.
(closes issue #12270)
Reported by: zandbelt
Patches:
      026-gsm-mips.patch uploaded by zandbelt (license 33)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@110474 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-21 14:32:52 +00:00
Jason Parker
b72a4686df Allow codecs that use log2comp (g726) to compile correctly on x86 with gcc4 optimizations.
(closes issue #12253)
Reported by: fossil
Patches:
      log2comp.patch uploaded by fossil (license 140)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@109648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-18 19:23:44 +00:00
Kevin P. Fleming
428a560d33 fix various other problems found by gcc 4.3
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@107464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-11 14:53:03 +00:00
Joshua Colp
a0c14dbda3 Add autoconf logic for speexdsp. Later versions use a separate library for some things so we need to use it if present in codec_speex.
(closes issue #11693)
Reported by: yzg


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98951 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-16 01:13:27 +00:00
Russell Bryant
7a007060bd Commit a fix for some memory access errors pointed out by the valgrind2.txt
output on issue #11698.

The issue here is that it is possible for an instance of a translator to get
destroyed while the frame allocated as a part of the translator is still being
processed.  Specifically, this is possible anywhere between a call to ast_read()
and ast_frame_free(), which is _a lot_ of places in the code.  The reason this
happens is that the channel might get masqueraded during this time.  During a
masquerade, existing translation paths get destroyed.

So, this patch fixes the issue in an API and ABI compatible way.  (This one is
 for you, paravoid!)

It changes an int in ast_frame to be used as flag bits.  The 1 bit is still used
to indicate that the frame contains timing information.  Also, a second flag has
been added to indicate that the frame came from a translator.  When a frame with
this flag gets released and has this flag, a function is called in translate.c to
let it know that this frame is doing being processed.  At this point, the flag gets
cleared.  Also, if the translator was requested to be destroyed while its internal
frame still had this flag set, its destruction has been deffered until it finds out
that the frame is no longer being processed.

Admittedly, this feels like a hack.  But, it does fix the issue, and I was not able 
to think of a better solution ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98943 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-15 23:26:52 +00:00
Tilghman Lesher
42d3e979f6 Add another exception (which doesn't work) for -march optimization flag.
Reported by: thomasmebes
Patch by: tilghman
(Closes issue #11563)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-11 18:25:44 +00:00
Kevin P. Fleming
ce81b232e3 report the same message whether Zaptel does not have transcoder support loaded or no transcoders were found
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-09 17:21:14 +00:00
Kevin P. Fleming
fd1e942f53 fix some copy-and-paste leftovers
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 07:21:08 +00:00
Kevin P. Fleming
627f595c58 In http://lists.digium.com/pipermail/asterisk-dev/2007-December/031145.html,
rizzo brought up some issues related to the way that the metadata required
for menuselect and the rest of the build system is extracted from the source
files. Since I had a few hours to kill on an airplane today, I decided to
improve this situation... so now the system caches the extracted metadata
and uses it to build the menuselect 'tree' as much as it can. The result
of this is that when a single source file is changed, only the metadata for
that file needs to be extracted again, and the rest is used from the cache
files. I also reduced the number of forked processes required to do the
metadata extraction; it was actually possible to do most of what we needed
in the Makefiles themselves without using any shell scripts at all! On my
laptop, these changes resulted in an 80% decrease in the time required
for the 'menuselect.makeopts' automatic check to occur after editing a single
source file.

While doing this work I also cleaned up a few minor things in the Makefiles,
adding a check for 'awk' to the configure script and changed all remaining
places we use 'grep' or 'awk' to use the ones found by the configure script,
and changed the 'prep_tarball' script to build the menuselect metadata so
that tarballs of Asterisk will include it and won't require the user to
wait while it is extracted after unpacking.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 06:44:51 +00:00
Kevin P. Fleming
1209386fe7 emit a warning message when we drop a G.729B CNG frame destined for the transcoder
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-12 22:00:39 +00:00
Kevin P. Fleming
bcedcf5f8a even though Asterisk explicitly requests that endpoints using G.729 do *not* use Annex B (silence detection and comfort noise generation) some do anyway; the transcoder card interface does not currently work properly with CNG frames, so trim off the CNG before sending the data
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@91870 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-07 22:30:59 +00:00
Jason Parker
a0edd3f3f3 Correctly set the total number of channels from a zaptel transcoder board.
SPD-49, patch by Matthew Nicholson.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 19:09:30 +00:00
Kevin P. Fleming
f0c0dfe1f1 clean up (and ignore) assembler and preprocessor intermediate files if any are created during the build
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@87463 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 22:12:16 +00:00
Russell Bryant
f5fd6e1cb1 Execute the RELEASE operation on transcoder channels in the destroy callback.
(patch from jsloan)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@86296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-18 15:45:55 +00:00
Joshua Colp
26623e4e1c (closes issue #10679)
Reported by: andrew
Build under dev mode when K6OPTS is enabled.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 21:41:49 +00:00
Kevin P. Fleming
90b557afea add missing "transcoder show" (and deprecated "show transcoder") CLI commands that were in 1.2 but never added to 1.4
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@81405 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-31 15:51:45 +00:00
Jason Parker
b4ea07a7eb Fix handling of zero-length frames when a codec is capable of native PLC.
Issue 9183, patch by Mihai.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@65877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-24 15:14:02 +00:00
Joshua Colp
e694a86517 Properly set datalen field when doing PLC in codec_speex. (issue #9722 reported by mihai)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-14 18:48:33 +00:00
Jason Parker
45be059315 Merged revisions 62173 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r62173 | qwell | 2007-04-27 11:16:16 -0500 (Fri, 27 Apr 2007) | 3 lines

This transcoder message needn't be a NOTICE.
I've seen it cause confusion more than a few times.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@62174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-27 16:17:46 +00:00
Kevin P. Fleming
f6ab517b3f Merged revisions 60398 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r60398 | kpfleming | 2007-04-06 09:41:37 -0500 (Fri, 06 Apr 2007) | 2 lines

remove undocumented 'cardsmode' parameter and stop searching for transcoders during reload()

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@60399 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-06 14:49:51 +00:00
Kevin P. Fleming
3b191255bf update to match zaptel 1.4 API change that was committed a few minutes ago
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@56548 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-24 00:53:55 +00:00
Russell Bryant
4b6558fb6b Filter out yet another architecture that does not work with the optimizations
in the built-in libgsm. (issue 8637, ovi)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@55050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-17 00:31:42 +00:00
Russell Bryant
ff1ca74145 When we are checking for a system installed version of libgsm, we need to check
for gsm.h as well.  Furthermore, when checking for this header, it may be
located in a gsm/ sub directory, so check for that, as well.
(issue #8773)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@52997 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-30 23:23:24 +00:00
Russell Bryant
9bb2b196ce Add a couple more processors that need optimizations excluded.
(issue #8637)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51331 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19 19:30:54 +00:00
Jason Parker
9803b9a357 Make codec_zap and chan_zap also depend on zaptel.
This fixes an issue (8727) with zaptel being in a different directory, using --with-zaptel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49705 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 23:16:16 +00:00
Kevin P. Fleming
d49b295c1d make building of codec_gsm against the system GSM library actually work
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49457 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-04 18:05:47 +00:00
Kevin P. Fleming
f195c5d622 check specifically for VLDTMF and transcoding support in the system's Zaptel installation, and make only the modules that need those features dependent on them (this will allow building the other Zaptel-using parts of Asterisk against older versions of Zaptel or those on other platforms that haven't caught up yet to the Linux version)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49102 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-01 23:34:35 +00:00
Kevin P. Fleming
9a78e1f90e remove some now-unnecessary explicit includes of autoconfig.h
clean up per-file dependencies during 'make clean'


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-18 11:59:24 +00:00
Russell Bryant
468fbbf3ca Fixes for cross-compilation on mips
(issue #8058, ywalther, with some modifications)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-01 22:51:21 +00:00
Joshua Colp
8a9517ba9a And file said... let the compiler warnings STOP!
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@45079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-13 18:42:49 +00:00
Luigi Rizzo
719ba6b535 fix two recent build problems:
- with AST_DEVMODE, building codecs/lpc10 fails because of lots
  of warnings, and the configure step in editline fails as well.
  Fix this by removing the -Werror in these steps.

- on FreeBSD (but probably on other platforms as well), the final
  link of asterisk fails because AST_LIBS was not exported to the
  subdirs Makefiles. Add a proper fix in the top-level Makefile
  (a possible alternative way is to add "export AST_LIBS" near
  the beginning of the file).
  With this fix, i believe that some of the platform-specific
  conditionals in main/Makefile are redundant (because they should
  be already dealt with in the top level Makefile) but i don't
  have a platform to check.
  
Merging to head will happen in a moment.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-30 16:28:39 +00:00
Kevin P. Fleming
ec2e4f2216 fix a few build system bugs, and convert Makefiles to be compatible with GNU make 3.80
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44055 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-29 22:47:40 +00:00
Kevin P. Fleming
704397dc3c don't abuse CFLAGS and LDFLAGS for build of Asterisk components, because they are also then used for non-Asterisk components (like menuselect); use our own variables instead
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-29 18:25:49 +00:00
Jason Parker
8699205857 be a little more consistent with our variable usage
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-19 14:16:12 +00:00
Kevin P. Fleming
c63fe750bb minor performance improvement
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-08 21:33:32 +00:00
Mark Spencer
35e7066c52 Fix transcoding performance issue
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 03:20:54 +00:00
Kevin P. Fleming
d12f54f90b GNU make already knows how to quietly ignore non-existent files in 'include' directives
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-26 23:58:47 +00:00
Russell Bryant
9df34a3d40 fix codec_gsm build for powerpc
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40993 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-24 19:07:01 +00:00