FS-11480: revert change for FS-11424 which introduced screeching after muxing

(thanks Sergey KHripchenko)
This commit is contained in:
Dragos Oancea 2019-03-19 13:05:51 +00:00
parent 2997ceb56f
commit 0a02a33023

View File

@ -281,11 +281,9 @@ SWITCH_DECLARE(void) switch_mux_channels(int16_t *data, switch_size_t samples, u
if (orig_channels > channels) { if (orig_channels > channels) {
if (channels == 1) { if (channels == 1) {
for (i = 0; i < samples; i++) { for (i = 0; i < samples; i++) {
int32_t z = 0; int16_t y, last = 0; int32_t z = 0;
for (j = 0; j < orig_channels; j++) { for (j = 0; j < orig_channels; j++) {
y = (int16_t) data[i * orig_channels + j]; z += (int16_t) data[i * orig_channels + j];
if (y != last) z += y;
last = y;
} }
switch_normalize_to_16bit(z); switch_normalize_to_16bit(z);
data[i] = (int16_t) z; data[i] = (int16_t) z;
@ -293,16 +291,12 @@ SWITCH_DECLARE(void) switch_mux_channels(int16_t *data, switch_size_t samples, u
} else if (channels == 2) { } else if (channels == 2) {
int mark_buf = 0; int mark_buf = 0;
for (i = 0; i < samples; i++) { for (i = 0; i < samples; i++) {
int32_t z_left = 0, z_right = 0; int16_t y_left, y_right, last_left = 0, last_right = 0; int32_t z_left = 0, z_right = 0;
for (j = 0; j < orig_channels; j++) { for (j = 0; j < orig_channels; j++) {
if (j % 2) { if (j % 2) {
y_left = (int16_t) data[i * orig_channels + j]; z_left += (int16_t) data[i * orig_channels + j];
if (y_left != last_left) z_left += y_left;
last_left = y_left;
} else { } else {
y_right = (int16_t) data[i * orig_channels + j]; z_right += (int16_t) data[i * orig_channels + j];
if (y_right != last_right) z_right += y_right;
last_right = y_right;
} }
} }
/* mark_buf will always be smaller than the size of data in bytes because orig_channels > channels */ /* mark_buf will always be smaller than the size of data in bytes because orig_channels > channels */