From: Anthony Minessale Date: Tue, 14 Apr 2009 17:29:38 +0000 (+0000) Subject: flush queued frames on audio sync event X-Git-Tag: v1.0.4~1171 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84e8dec72f9dd4e6d4026cad4ac75f2216a03732;p=thirdparty%2Ffreeswitch.git flush queued frames on audio sync event git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13018 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- diff --git a/src/mod/endpoints/mod_loopback/mod_loopback.c b/src/mod/endpoints/mod_loopback/mod_loopback.c index 5985d2d875..49731e7b5d 100644 --- a/src/mod/endpoints/mod_loopback/mod_loopback.c +++ b/src/mod/endpoints/mod_loopback/mod_loopback.c @@ -688,6 +688,25 @@ static switch_status_t channel_receive_message(switch_core_session_t *session, s default: break; } + + switch (msg->message_id) { + case SWITCH_MESSAGE_INDICATE_BRIDGE: + case SWITCH_MESSAGE_INDICATE_UNBRIDGE: + case SWITCH_MESSAGE_INDICATE_AUDIO_SYNC: + { + void *pop; + + while (switch_queue_trypop(tech_pvt->frame_queue, &pop) == SWITCH_STATUS_SUCCESS && pop) { + switch_frame_t *frame = (switch_frame_t *) pop; + switch_frame_free(&frame); + } + } + break; + default: + break; + } + + return SWITCH_STATUS_SUCCESS; }