From fe820b9bdfc22aa6c16eabcd844df7491be8a5b6 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 23 Jul 2008 23:24:18 +0000 Subject: [PATCH] tweak git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9151 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_ivr_play_say.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index 2bd6039862..f79b492c98 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -1012,15 +1012,33 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess do_speed = 0; } else if (fh->sp_audio_buffer && (eof || (switch_buffer_inuse(fh->sp_audio_buffer) > (switch_size_t) (framelen)))) { if (!(bread = switch_buffer_read(fh->sp_audio_buffer, abuf, framelen))) { - break; + if (eof) { + continue; + } else { + break; + } } - olen = asis ? bread : bread / 2; + + if (bread < framelen) { + memset(abuf + bread, 0, framelen - bread); + } + + olen = asis ? framelen : ilen; do_speed = 0; } else if (fh->audio_buffer && (eof || (switch_buffer_inuse(fh->audio_buffer) > (switch_size_t) (framelen)))) { if (!(bread = switch_buffer_read(fh->audio_buffer, abuf, framelen))) { - break; + if (eof) { + break; + } else { + continue; + } } - olen = asis ? bread : bread / 2; + + if (bread < framelen) { + memset(abuf + bread, 0, framelen - bread); + } + + olen = asis ? framelen : ilen; } else { if (eof) { break;