res/res_rtp_asterisk: clear smoother when local bridging
authorTorrey Searle <torrey@voxbone.com>
Tue, 12 Feb 2019 09:50:55 +0000 (10:50 +0100)
committerTorrey Searle <tsearle@gmail.com>
Tue, 19 Feb 2019 07:37:57 +0000 (01:37 -0600)
p2p_write updates txformat but doesn't require a smoother.  If a smoother
was created by another bridge type the smoother could fall out of date causing
one way audio issues.  To prevent this the smoother is now destroyed on the
start of native bridge.

ASTERISK-28284 #close

Change-Id: I84e67f144963787fff9b4d79ac500514fb40cdc6

res/res_rtp_asterisk.c

index 9e603f2..c206497 100644 (file)
@@ -7480,6 +7480,10 @@ static int ast_rtp_local_bridge(struct ast_rtp_instance *instance0, struct ast_r
 
        ao2_lock(instance0);
        ast_set_flag(rtp, FLAG_NEED_MARKER_BIT | FLAG_REQ_LOCAL_BRIDGE_BIT);
+       if (rtp->smoother) {
+               ast_smoother_free(rtp->smoother);
+               rtp->smoother = NULL;
+       }
        ao2_unlock(instance0);
 
        return 0;