FS-9028: [avmd] Check SMA buffer
Now SMA buffer is checked for successful memory allocation dynamically with assertion omitted.
This commit is contained in:
parent
5ea78d6da2
commit
7dd77c781e
|
@ -32,8 +32,6 @@ typedef struct {
|
|||
(void)memset((b), 0, sizeof(sma_buffer_t)); \
|
||||
(b)->len = (l); \
|
||||
(b)->data = (BUFF_TYPE *)switch_core_session_alloc((s), sizeof(BUFF_TYPE) * (l)); \
|
||||
assert((b)->data != NULL); \
|
||||
(void)memset((b)->data, 0, sizeof(BUFF_TYPE) * (l)); \
|
||||
(b)->sma = 0.0; \
|
||||
(b)->pos = 0; \
|
||||
(b)->lpos = 0; \
|
||||
|
|
|
@ -163,6 +163,8 @@ static void init_avmd_session_data(avmd_session_t *avmd_session,
|
|||
static void init_avmd_session_data(avmd_session_t *avmd_session,
|
||||
switch_core_session_t *fs_session)
|
||||
{
|
||||
size_t buf_sz;
|
||||
|
||||
/*! This is a worst case sample rate estimate */
|
||||
avmd_session->rate = 48000;
|
||||
INIT_CIRC_BUFFER(&avmd_session->b,
|
||||
|
@ -184,16 +186,32 @@ static void init_avmd_session_data(avmd_session_t *avmd_session,
|
|||
avmd_session->samples_streak = SAMPLES_CONSECUTIVE_STREAK;
|
||||
#endif
|
||||
avmd_session->sample_count = 0;
|
||||
INIT_SMA_BUFFER(
|
||||
&avmd_session->sma_b,
|
||||
BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate),
|
||||
fs_session
|
||||
);
|
||||
INIT_SMA_BUFFER(
|
||||
&avmd_session->sqa_b,
|
||||
BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate),
|
||||
fs_session
|
||||
);
|
||||
|
||||
buf_sz = BEEP_LEN(avmd_session->rate) / SINE_LEN(avmd_session->rate);
|
||||
if (buf_sz < 1) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session),
|
||||
SWITCH_LOG_ERROR, "Failed to init avmd session."
|
||||
" SMA buffer size is 0!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
INIT_SMA_BUFFER(&avmd_session->sma_b, buf_sz, fs_session);
|
||||
if (avmd_session->sma_b.data == NULL) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session),
|
||||
SWITCH_LOG_ERROR, "Failed to init avmd session."
|
||||
" SMA buffer error\n");
|
||||
return;
|
||||
}
|
||||
memset(avmd_session->sma_b.data, 0, sizeof(BUFF_TYPE) * buf_sz);
|
||||
|
||||
INIT_SMA_BUFFER(&avmd_session->sqa_b, buf_sz, fs_session);
|
||||
if (avmd_session->sqa_b.data == NULL) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(fs_session),
|
||||
SWITCH_LOG_ERROR, "Failed to init avmd session."
|
||||
" SMA sqa buffer error\n");
|
||||
return;
|
||||
}
|
||||
memset(avmd_session->sqa_b.data, 0, sizeof(BUFF_TYPE) * buf_sz);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue