From 84e8dec72f9dd4e6d4026cad4ac75f2216a03732 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 14 Apr 2009 17:29:38 +0000 Subject: [PATCH] flush queued frames on audio sync event git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13018 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_loopback/mod_loopback.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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; }