mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-06-04 20:26:01 +00:00
allow -1 as silence generation divisor to specify only zeroes silence
This commit is contained in:
parent
267d9cbc3a
commit
294a57fbcb
@ -62,6 +62,12 @@ SWITCH_BEGIN_EXTERN_C struct switch_unicast_conninfo {
|
|||||||
};
|
};
|
||||||
typedef struct switch_unicast_conninfo switch_unicast_conninfo_t;
|
typedef struct switch_unicast_conninfo switch_unicast_conninfo_t;
|
||||||
|
|
||||||
|
#define SWITCH_IVR_VERIFY_SILENCE_DIVISOR(divisor) \
|
||||||
|
do { \
|
||||||
|
if ((divisor) <= 0 && (divisor) != -1) { \
|
||||||
|
divisor = 400; \
|
||||||
|
} \
|
||||||
|
} while(0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup switch_ivr IVR Library
|
* @defgroup switch_ivr IVR Library
|
||||||
|
@ -154,7 +154,13 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_sleep(switch_core_session_t *session,
|
|||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ms > 100 && (var = switch_channel_get_variable(channel, SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE)) && (sval = atoi(var))) {
|
var = switch_channel_get_variable(channel, SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE);
|
||||||
|
if (var) {
|
||||||
|
sval = atoi(var);
|
||||||
|
SWITCH_IVR_VERIFY_SILENCE_DIVISOR(sval);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ms > 100 && sval) {
|
||||||
switch_core_session_get_read_impl(session, &imp);
|
switch_core_session_get_read_impl(session, &imp);
|
||||||
|
|
||||||
if (switch_core_codec_init(&codec,
|
if (switch_core_codec_init(&codec,
|
||||||
|
@ -910,9 +910,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t
|
|||||||
ringback.silence = atoi(p);
|
ringback.silence = atoi(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ringback.silence <= 0) {
|
SWITCH_IVR_VERIFY_SILENCE_DIVISOR(ringback.silence);
|
||||||
ringback.silence = 400;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
switch_buffer_create_dynamic(&ringback.audio_buffer, 512, 1024, 0);
|
switch_buffer_create_dynamic(&ringback.audio_buffer, 512, 1024, 0);
|
||||||
switch_buffer_set_loops(ringback.audio_buffer, -1);
|
switch_buffer_set_loops(ringback.audio_buffer, -1);
|
||||||
|
@ -190,6 +190,11 @@ SWITCH_DECLARE(void) switch_generate_sln_silence(int16_t *data, uint32_t samples
|
|||||||
|
|
||||||
assert(divisor);
|
assert(divisor);
|
||||||
|
|
||||||
|
if (divisor == (uint32_t)-1) {
|
||||||
|
memset(data, 0, sizeof(*data));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < samples; i++, sum_rnd = 0) {
|
for (i = 0; i < samples; i++, sum_rnd = 0) {
|
||||||
for (x = 0; x < 6; x++) {
|
for (x = 0; x < 6; x++) {
|
||||||
rnd2 = rnd2 * 31821U + 13849U;
|
rnd2 = rnd2 * 31821U + 13849U;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user