Commit Graph

35 Commits

Author SHA1 Message Date
Tilghman Lesher
1653a9ef65 Ensure that Asterisk builds with --enable-dev-mode, even on the latest gcc
and glibc.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@160207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-02 00:25:16 +00:00
Mark Michelson
6a632a5a2b There was an issue when attempting to reference an embedded
frame in a freed ast_filestream. This patch makes use of the
ao2 functions to make sure that we do not free an ast_filestream
structure until the embedded ast_frame has been "freed" as well.

(closes issue #13496)
Reported by: fst-onge
Patches:
      filestream_frame_1_4.diff uploaded by putnopvut (license 60)
Tested by: putnopvut

Closes AST-89



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@158126 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-20 18:06:48 +00:00
Mark Michelson
74e98c5995 Remove show_frame_stats_deprecated since it is not
used anywhere and causes build errors if building under
dev-mode with TRACE_FRAMES selected in menuselect.

(closes issue #13362)
Reported by: snuffy



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@139521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-22 19:23:02 +00:00
Mark Michelson
171a6a24bb Add prototype for ast_dsp_frame_freed. I'm not sure how this was
compiling before...



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-17 16:50:46 +00:00
Mark Michelson
71b704ef78 It was possible for a reference to a frame which was part of a freed DSP to still be
referenced, leading to memory corruption and eventual crashes. This code change ensures
that the dsp is freed when we are finished with the frame. This change is very similar
to a change Russell made with translators back a month or so ago.

(closes issue #11999)
Reported by: destiny6628
Patches:
      11999.patch uploaded by putnopvut (license 60)
Tested by: destiny6628, victoryure



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-17 16:28:03 +00:00
Jason Parker
7fbcd155c1 Put this flag back so we don't change the API.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@111280 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-27 00:25:13 +00:00
Jason Parker
22078d33d4 Remove excessive smoother optimization that was causing audio glitches (small "pops")
after (about 200ms later) an "incorrectly" sized frame was received.

While it would be very nice to keep this as optimized as possible, it makes no sense
 for the smoother to be dropping random bits of audio like this.  Isn't that the
 whole point of a smoother?

Closes issue #12093.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@111245 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-26 23:26:33 +00:00
Tilghman Lesher
56e908b787 Safely use the strncat() function.
(closes issue #11958)
 Reported by: norman
 Patches: 
       20080209__bug11958.diff.txt uploaded by Corydon76 (license 14)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@106552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-07 06:36:33 +00:00
Russell Bryant
06d3c61a2e Revert adding the packed attribute, as it really doesn't make sense why that
would do any good.  Fix the real bug, which is to do the check to see if the
frame came from a translator at the beginning of ast_frame_free(), instead of
at the end.  This ensures that it always gets checked, even if none of the
parts of the frame are malloc'd, and also ensures that we aren't looking at
free'd memory in the case that it is a malloc'd frame.

(closes issue #11792, reported by explidous, patched by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99081 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-18 21:37:21 +00:00
Russell Bryant
6d0ee62540 Have IAX2 optimize the codec translation path just like chan_sip does it. If
the caller's codec is in our codec list, move it to the top to avoid transcoding.

(closes issue #10500)
Reported by: stevedavies
Patches:
      iax-prefer-current-codec.patch uploaded by stevedavies (license 184)
      iax-prefer-current-codec.1.4.patch uploaded by stevedavies (license 184)
Tested by: stevedavies, pj, sheldonh


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@99004 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-17 22:37:22 +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
f826e84059 Fix samples vs. length calculations for g722
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-11 03:39:33 +00:00
Joshua Colp
00a80bcb7d Put the speex packetization values back in but disable it when setting up the smoother.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@70360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-20 17:52:57 +00:00
Joshua Colp
9c76e929c9 Don't do packetization/smoother stuff with speex, it doesn't work.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@70198 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-20 00:24:36 +00:00
Russell Bryant
33235b40d6 Merge the changes from the /team/group/vldtmf_fixup branch.
The main bug being addressed here is a problem introduced when two SIP
channels using SIP INFO dtmf have their media directly bridged.  So, when a
DTMF END frame comes into Asterisk from an incoming INFO message, Asterisk
would try to emulate a digit of some length by first sending a DTMF BEGIN
frame and sending a DTMF END later timed off of incoming audio.  However,
since there was no audio coming in, the DTMF_END was never generated.  This
caused DTMF based features to no longer work.

To fix this, the core now knows when a channel doesn't care about DTMF BEGIN
frames (such as a SIP channel sending INFO dtmf).  If this is the case, then
Asterisk will not emulate a digit of some length, and will instead just pass
through the single DTMF END event.

Channel drivers also now get passed the length of the digit to their digit_end
callback.  This improves SIP INFO support even further by enabling us to put
the real digit duration in the INFO message instead of a hard coded 250ms.
Also, for an incoming INFO message, the duration is read from the frame and
passed into the core instead of just getting ignored.

(issue #8597, maybe others...)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51311 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19 17:49:38 +00:00
Kevin P. Fleming
24bb7d865e don't mark these allocations as 'cache' allocations when caching has been disabled
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-04 21:58:42 +00:00
Kevin P. Fleming
fa5de60c6e don't do frame header caching in the core if LOW_MEMORY is defined
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-04 18:17:01 +00:00
Steve Murphy
4d6a91eef0 removed <err.h> as in trunk from the ael stuff. Also, threw in a minor fix to frame.c to avoid build-killing compiler warnings.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49020 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-28 19:21:56 +00:00
Kevin P. Fleming
a299485952 since these variables all have static duration, none of them need initializers (they default to zero anyway)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49006 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 22:06:56 +00:00
Kevin P. Fleming
b2c8abbc6d allow 'show memory' and 'show memory summary' to distinguish memory allocations that were done for caching purposes, so they don't look like memory leaks
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 18:29:13 +00:00
Joshua Colp
0e684abd82 Merged revisions 47859 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r47859 | file | 2006-11-20 14:50:21 -0500 (Mon, 20 Nov 2006) | 2 lines

Don't forget to byte swap if we are exiting the smoother feed early. (issue #8287 reported by arturs)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-20 19:51:36 +00:00
Kevin P. Fleming
ea53cfcea3 the battle over CLI command formats has broken stuff...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-08 21:46:20 +00:00
Tilghman Lesher
e05a2752e8 Reverse change of "show" to "list" and make several other commands more consistent with "category verb arguments"
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 23:00:20 +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
Joshua Colp
d2d4833b79 Put in missing \ns on the end of ast_logs (issue #7936 reported by wojtekka)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43933 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-28 18:05:43 +00:00
Jason Parker
49e903f56d Issue #8015, patch by Dan Austin.
Maximum values were incorrect, which is why this is being put in 1.4


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-26 18:08:51 +00:00
Russell Bryant
33acd61f53 Suppress a compiler warning about the use of a potentially uninitialized
variable.  It couldn't actually happen, though.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-22 14:02:58 +00:00
Joshua Colp
d544223d02 Warning be gone!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-19 15:36:25 +00:00
Matt O'Gorman
465adf2bf1 allow for packetization on rtp channel drivers, need to add
option for setting our own packetization as apposed to just doing 
what is asked.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 23:32:57 +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
bc5924120d Remove old unused functions
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-04 03:18:12 +00:00
Russell Bryant
4de3c0e447 Add the ability to specify that a frame should not be considered for caching
for uses in cases where you *know* that it will do no good.  This patch was
inspired by file for use in some work of his on mixmonitor/chanspy.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-03 23:14:54 +00:00
Joshua Colp
aaaec0e917 Add new frame types for DTMF
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 18:21:00 +00:00
Russell Bryant
f7e7161607 Merge team/russell/frame_caching
There are some situations in Asterisk where ast_frame and/or iax_frame
structures are rapidly allocatted and freed (at least 50 times per second
for one call).

This code significantly improves the performance of ast_frame_header_new(), 
ast_frdup(), ast_frfree(), iax_frame_new(), and iax_frame_free() by keeping
a thread-local cache of these structures and using frames from the cache 
whenever possible instead of calling malloc/free every time.

This commit also converts the ast_frame and iax_frame structures to use the
linked list macros.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-29 20:50:36 +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