dahdi: When DACS is enabled, hold a pointer directly to the crossed channel.
This both removes the need to reference the 'chans' __dahdi_process_putaudio_chunk and __dahdi_process_getaudio_chunk, and allows the dahdi_receive / dahdi_transmit logic to be streamlined. DACS channels can no longer be echocanceled if crossed. However, if a channel was DACSed with dahi_cfg it couldn't have been echocanceled anyway since the echo cancelers are disabled on the channel by default. This change was originally contained in a patch kpfleming had floating around. I split it up and merged it. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Signed-off-by: Kevin P. Fleming <kpfleming@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9603 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
@@ -432,6 +432,9 @@ struct dahdi_chan {
|
||||
u_char sreadchunk[DAHDI_MAX_CHUNKSIZE]; /*!< Preallocated static area */
|
||||
short *readchunkpreec;
|
||||
|
||||
/* Channel from which to read when DACSed. */
|
||||
struct dahdi_chan *dacs_chan;
|
||||
|
||||
/*! Pointer to tx and rx gain tables */
|
||||
const u_char *rxgain;
|
||||
const u_char *txgain;
|
||||
@@ -529,7 +532,7 @@ struct dahdi_chan {
|
||||
short conflast[DAHDI_MAX_CHUNKSIZE]; /*!< Last conference sample -- base part of channel */
|
||||
short conflast1[DAHDI_MAX_CHUNKSIZE]; /*!< Last conference sample -- pseudo part of channel */
|
||||
short conflast2[DAHDI_MAX_CHUNKSIZE]; /*!< Previous last conference sample -- pseudo part of channel */
|
||||
|
||||
|
||||
|
||||
/*! The echo canceler module that should be used to create an
|
||||
instance when this channel needs one */
|
||||
|
||||
Reference in New Issue
Block a user