]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: fix rx gain
authorMoises Silva <moy@sangoma.com>
Thu, 7 Apr 2011 15:21:50 +0000 (11:21 -0400)
committerMoises Silva <moy@sangoma.com>
Thu, 7 Apr 2011 15:22:46 +0000 (11:22 -0400)
libs/freetdm/src/ftdm_io.c

index 1ecd816658ecf6cced321a651b08b3d5e0831f51..1d7a0d1eb1764eed533e15910c5e649b9fd9ab17 100644 (file)
@@ -3563,16 +3563,18 @@ static FIO_WRITE_FUNCTION(ftdm_raw_write)
 static FIO_READ_FUNCTION(ftdm_raw_read)
 {
        ftdm_status_t  status = ftdmchan->fio->read(ftdmchan, data, datalen);
+
+       if (status == FTDM_SUCCESS && 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 (status == FTDM_SUCCESS && ftdmchan->fds[FTDM_READ_TRACE_INDEX] > -1) {
                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) {
                        ftdm_log(FTDM_LOG_WARNING, "Raw input trace failed to write all of the %"FTDM_SIZE_FMT" bytes\n", dlen);
                }