Commit Graph

17 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00
Kevin P. Fleming
f761d2f6f0 prepare Asterisk for new zaptel.h/tonezone.h installation locations
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37027 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-05 16:44:41 +00:00
Kevin P. Fleming
e61d3d91f3 The Eurostar Commit! (it's amazing how much work you can get done on a 150 minute train ride from Paris to London <G>)
support the new location for zaptel.h and tonezone.h
use the dependency information output by menuselect to build Makefile rules for each module for header files and libraries
combine the common rules into a top-level Makefile.rules file
remove all (now) unnecessary stuff from subdir Makefiles
change translator API so that the newpvt() callback returns an int instead of a pointer (it no longer allocates memory)
alphabetize --with-<foo> options in configure script
enhance Net-SNMP support in configure script to provide a --with-netsnmp option
fix support for --with-pq so that if pg-config is not found when --with-pq is specified, an error will be generated
add 'optional package' usage to modules now that menuselect can output it
allow res_snmp to build by default, since the new loader changes coming soon will solve the function naming problem (and users can disable it via menuselect anyway)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-24 19:43:31 +00:00
Kevin P. Fleming
b8518110da add support for Zaptel transcoders
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@35745 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-23 16:33:17 +00:00