mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-15 16:39:14 +00:00
freetdm: apply gain before dumping to file
This commit is contained in:
parent
8e54baf4bd
commit
b33015327e
@ -3565,6 +3565,14 @@ static FIO_READ_FUNCTION(ftdm_raw_read)
|
|||||||
ftdm_status_t status = ftdmchan->fio->read(ftdmchan, data, datalen);
|
ftdm_status_t status = ftdmchan->fio->read(ftdmchan, data, datalen);
|
||||||
if (status == FTDM_SUCCESS && ftdmchan->fds[FTDM_READ_TRACE_INDEX] > -1) {
|
if (status == FTDM_SUCCESS && ftdmchan->fds[FTDM_READ_TRACE_INDEX] > -1) {
|
||||||
ftdm_size_t dlen = *datalen;
|
ftdm_size_t dlen = *datalen;
|
||||||
|
if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN)
|
||||||
|
&& (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) {
|
||||||
|
int i = 0;
|
||||||
|
unsigned char *rdata = data;
|
||||||
|
for (i = 0; i < *datalen; i++) {
|
||||||
|
rdata[i] = ftdmchan->rxgain_table[rdata[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((ftdm_size_t)write(ftdmchan->fds[FTDM_READ_TRACE_INDEX], data, (int)dlen) != dlen) {
|
if ((ftdm_size_t)write(ftdmchan->fds[FTDM_READ_TRACE_INDEX], data, (int)dlen) != dlen) {
|
||||||
ftdm_log(FTDM_LOG_WARNING, "Raw input trace failed to write all of the %"FTDM_SIZE_FMT" bytes\n", dlen);
|
ftdm_log(FTDM_LOG_WARNING, "Raw input trace failed to write all of the %"FTDM_SIZE_FMT" bytes\n", dlen);
|
||||||
}
|
}
|
||||||
@ -3730,7 +3738,6 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data
|
|||||||
ftdm_status_t status = FTDM_FAIL;
|
ftdm_status_t status = FTDM_FAIL;
|
||||||
fio_codec_t codec_func = NULL;
|
fio_codec_t codec_func = NULL;
|
||||||
ftdm_size_t max = *datalen;
|
ftdm_size_t max = *datalen;
|
||||||
unsigned i = 0;
|
|
||||||
|
|
||||||
ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "ftdmchan is null\n");
|
ftdm_assert_return(ftdmchan != NULL, FTDM_FAIL, "ftdmchan is null\n");
|
||||||
ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "No I/O module attached to ftdmchan\n");
|
ftdm_assert_return(ftdmchan->fio != NULL, FTDM_FAIL, "No I/O module attached to ftdmchan\n");
|
||||||
@ -3769,13 +3776,6 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_read(ftdm_channel_t *ftdmchan, void *data
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_USE_RX_GAIN)
|
|
||||||
&& (ftdmchan->native_codec == FTDM_CODEC_ALAW || ftdmchan->native_codec == FTDM_CODEC_ULAW)) {
|
|
||||||
unsigned char *rdata = data;
|
|
||||||
for (i = 0; i < *datalen; i++) {
|
|
||||||
rdata[i] = ftdmchan->rxgain_table[rdata[i]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
handle_tone_generation(ftdmchan);
|
handle_tone_generation(ftdmchan);
|
||||||
|
|
||||||
if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) {
|
if (ftdm_test_flag(ftdmchan, FTDM_CHANNEL_TRANSCODE) && ftdmchan->effective_codec != ftdmchan->native_codec) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user