dahdi: Update the dahdi_ec_chunk interface to support preec streams.

dahdi_ec_chunk is the function that saves the received audio and places
a signed linear copy of it in the pre echocanceled buffer on the
channel.  By splitting the input and output of this function into two
parameters, a driver that can provide separate pre and post ec streams
can pass them independently to DAHDI, without worrying about DAHDI
overwriting a stream that may have already been echocanceled by the
hardware.

Previously, the dahdi_ec_chunk interface took a received audio buffer
and overwrote it after canceling the echo.  Now the input and output
from the function are broken up in order to support hardware echocans
that have a different preechocan stream.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9941 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
Shaun Ruffell
2011-06-02 20:01:40 +00:00
parent 76df5ab26b
commit dd33d6c357
2 changed files with 36 additions and 33 deletions

View File

@@ -1158,8 +1158,14 @@ struct dahdi_tone *dahdi_mf_tone(const struct dahdi_chan *chan, char digit, int
as possible. ECHO CANCELLATION IS NO LONGER AUTOMATICALLY DONE
AT THE DAHDI LEVEL. dahdi_ec_chunk will not echo cancel if it should
not be doing so. rxchunk is modified in-place */
void _dahdi_ec_chunk(struct dahdi_chan *chan, unsigned char *rxchunk,
const unsigned char *txchunk);
void __dahdi_ec_chunk(struct dahdi_chan *ss, u8 *rxchunk,
const u8 *preecchunk, const u8 *txchunk);
static inline void _dahdi_ec_chunk(struct dahdi_chan *chan,
u8 *rxchunk, const u8 *txchunk)
{
__dahdi_ec_chunk(chan, rxchunk, rxchunk, txchunk);
}
static inline void dahdi_ec_chunk(struct dahdi_chan *ss, unsigned char *rxchunk,
const unsigned char *txchunk)