diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c index 8727fa896c..cffeb0e2b9 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -213,19 +213,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(switch_media_bug_t *b return SWITCH_STATUS_FALSE; } - if (fill) { - fill_read = !do_read; - fill_write = !do_write; - } - - if (fill && fill_read && fill_write) { + + fill_read = !do_read; + fill_write = !do_write; + + if (fill_read && fill_write) { return SWITCH_STATUS_FALSE; } - if (!((do_read || fill_read) && (do_write || fill_write))) { - return SWITCH_STATUS_FALSE; - } - if (do_read) { switch_mutex_lock(bug->read_mutex); if (switch_buffer_read(bug->raw_read_buffer, &rh, sizeof(rh))) { @@ -336,6 +331,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_bug_read(switch_media_bug_t *b return SWITCH_STATUS_BREAK; } + if (fill_read || fill_write) { + return SWITCH_STATUS_FALSE; + } + return SWITCH_STATUS_SUCCESS; }