From 9fbe3ea2e174ef860006335e66a8bfe01c1ab4af Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 2 Aug 2010 13:48:35 -0500 Subject: [PATCH] FSCORE-639 --- src/switch_rtp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index cec5c6be35..efe7a2b8a3 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -2107,14 +2107,21 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t &rb); if ((rstatus != SWITCH_STATUS_SUCCESS && rstatus != SWITCH_STATUS_BREAK) || rb < 0) { - *bytes = rb; - return rstatus; + if (rtp_session->recv_msg_idx) { + /* Handle the data we have queued up */ + break; + } else { + *bytes = rb; + return rstatus; + } } if (!rb) break; rtp_session->recv_msg_array[rtp_session->recv_msg_idx].bytes = rb; rtp_session->recv_msg_idx++; + + switch_cond_next(); /* Relax just a bit */ } if (!*bytes && rtp_session->recv_msg_idx) goto top;