Commit Graph

33 Commits

Author SHA1 Message Date
Kevin P. Fleming
add5ff5b05 fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings being passed to printf()-like functions and ignored results from read()/write() and friends
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@153337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 18:22:39 +00:00
Kevin P. Fleming
0b7476c21c it would be nice if this message printing code had actually been tested before it was committed...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@148611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-14 07:54:41 +00:00
Tilghman Lesher
cd17593356 Since powerof() can return an error condition, it's foolhardy not to detect and
deal with that condition.
(Related to issue #13240)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@135915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-06 03:24:56 +00:00
Russell Bryant
d564404d73 Fix a bug that I just noticed in the RTP code. The calculation for setting the
len field in an ast_frame of audio was wrong when G.722 is in use.  The len field
represents the number of ms of audio that the frame contains.  It would have
set the value to be twice what it should be.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@105932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-05 01:52:18 +00:00
Russell Bryant
e4ee2274a1 Fix a couple of places where ast_frfree() was not called on a frame that came
from a translator.  This showed itself by g729 decoders not getting released.
Since the flag inside the translator frame never got unset by freeing the frame
to indicate it was no longer in use, the translators never got destroyed, and
thus the g729 licenses were not released.

(closes issue #11892)
Reported by: xrg
Patches:
      11892.diff uploaded by russell (license 2)
Tested by: xrg, russell


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@101601 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-31 23:10:06 +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
Russell Bryant
9a241dd2b9 Revert a change that introduces an unacceptable performance hit and is causing
memory leaks ... (from rev 97973)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98774 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-14 17:38:38 +00:00
Russell Bryant
97ac0d3d1c Simplify this code with a suggestion from Luigi on the asterisk-dev list.
Instead of using is16kHz(), implement a format_rate() function.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-11 00:14:59 +00:00
Russell Bryant
8fd3d8a51b Fix various timing calculations that made assumptions that the audio being
processed was at a sample rate of 8 kHz.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97976 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-10 23:30:40 +00:00
Tilghman Lesher
7f61492a42 1) When we get a translated frame out, clone it, because if the
translator pvt is freed before we use the frame, bad things happen.
2) Getting a failure from ast_sched_delete means that the schedule
ID is currently running.  Don't just ignore it.
(Closes issue #11698)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@97973 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-10 23:08:36 +00:00
Russell Bryant
67df6e008d Use the constant that I really meant to use here ...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@94829 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-27 14:44:29 +00:00
Russell Bryant
c792659cc7 Change ast_translator_best_choice() to only pay attention to audio formats.
This fixes a problem where Asterisk claims that a translation path can not be
found for channels involving video.

(closes issue #11638)
Reported by: cwhuang
Tested by: cwhuang
Patch suggested by cwhuang, with some additional changes by me.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@94828 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-27 14:33:21 +00:00
Jason Parker
6fa23de8ac Missed a spot..
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 22:56:58 +00:00
Jason Parker
7e7db434e4 What was I thinking when I wrote this masterpiece?
-1 + 1 = 0..  who woulda thunk it?.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@93381 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-17 22:45:57 +00:00
Joshua Colp
7fb76769a8 Fix plc_samples warning when registering a translator. (issue #9897 reported by xylome)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-06 13:18:39 +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
Steve Murphy
e6ce5ce979 bug 8189 posted this fix for main/translate.c for PLC
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-24 17:17:07 +00:00
Jason Parker
b12229c1ff Fix "core show translation" output. Issue #8243, patch by Damin.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46716 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 22:02:15 +00:00
Kevin P. Fleming
f532d2f198 add an API so that translators can activate/deactivate themselves when needed
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 21:47:48 +00:00
Kevin P. Fleming
160a0448c2 revert changes that were the wrong way to address this... proper fix coming
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46713 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 21:36:17 +00:00
Kevin P. Fleming
f725940328 let's set the seen flag early enough to actually make a difference...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46712 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 21:25:20 +00:00
Kevin P. Fleming
59186bb2d2 don't re-do setup operations for translators that can dynamically register themselves
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 21:23:06 +00:00
Russell Bryant
68720145e3 Add a small tweak to the code that checks to see whether destination formats
are translatable based on the source format.  If we have already determined
that there is no translation path in one direction, don't bother checking the
other direction.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 05:55:07 +00:00
Kevin P. Fleming
d8817c0d3c when unregistering a translator, don't rebuild the translation matrix unless needed
when filtering formats out of an offer, ensure we check for translation ability in both directions


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46526 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-30 22:19:55 +00:00
Russell Bryant
3cb7bcd6d7 - If the source has no audio or no video portion, do not call powerof() to
get the format index.
- Don't run through the audio and video loops if there is no audio or video
  portion of the source
If 0 is passed to powerof, it will return -1.  This value of -1 was then being
used as an array index in these loops, which caused a crash on some systems.
Other than this issue, this code works as we expected it to.  If a format is
not in the source, and we have to translation path to it, it is not offered in
the list of acceptable destination formats.
(fixes issue #8231)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-26 16:31:05 +00:00
Kevin P. Fleming
6c17f1e07e add passthrough and file format support for G.722 16KHz audio (issue #5084, original patch by andrew, updated by mithraen)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-25 00:26:17 +00:00
Kevin P. Fleming
05eb71c699 code zone experiment: don't offer formats in the outbound INVITE that aren't either passthrough or translatable
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-25 00:10:54 +00:00
Kevin P. Fleming
c5f096e220 if multiple translators are registered for the same source/dest combination, ensure that the lowest-cost one is always inserted earlier in the list
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46152 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-24 23:45:19 +00:00
Kevin P. Fleming
471c0eebdc ensure that the translation matrix is properly lock-protected every place it is used
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46083 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-24 03:53:32 +00:00
Kevin P. Fleming
d2b10d5f4f add an API call to allow channel drivers to determine which media formats are compatible (passthrough or transcode) with the format an existing channel is already using
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-24 03:45:42 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Joshua Colp
11b5db3d61 Clarify what show translations is displaying a bit more (issue #7772 reported by Mithraen)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 16:04:24 +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