From: Anthony Minessale Date: Mon, 16 Apr 2012 16:14:14 +0000 (-0500) Subject: FS-4115 possible workaround for sipura bug + recording X-Git-Tag: v1.2-rc1~17^2~218 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e1db065195f31885de40e7cb7285880e2ba37ba8;p=thirdparty%2Ffreeswitch.git FS-4115 possible workaround for sipura bug + recording --- diff --git a/src/switch_core_io.c b/src/switch_core_io.c index 952b345e67..bfc8f1cd33 100644 --- a/src/switch_core_io.c +++ b/src/switch_core_io.c @@ -1101,6 +1101,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Write Buffer Failed!\n"); goto error; } + + /* Need to retrain the recording data */ + switch_core_media_bug_flush_all(session); } if (!(switch_buffer_write(session->raw_write_buffer, write_frame->data, write_frame->datalen))) { diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c index 0397aa666b..313552124f 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -126,6 +126,10 @@ SWITCH_DECLARE(void) switch_core_media_bug_flush(switch_media_bug_t *bug) switch_buffer_zero(bug->raw_write_buffer); switch_mutex_unlock(bug->write_mutex); } + + bug->record_frame_size = 0; + bug->record_pre_buffer_count = 0; + } SWITCH_DECLARE(void) switch_core_media_bug_inuse(switch_media_bug_t *bug, switch_size_t *readp, switch_size_t *writep)