mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-26 22:30:28 +00:00
bridge: Change participant SFU streams when source streams change.
Some endpoints do not like a stream being reused for a new media stream. The frame/jitterbuffer can rely on underlying attributes of the media stream in order to order the packets. When a new stream takes its place without any notice the buffer can get confused and the media ends up getting dropped. This change uses the SSRC change to determine that a new source is reusing an existing stream and then bridge_softmix renegotiates each participant such that they see a new media stream. This causes the frame/jitterbuffer to start fresh and work as expected. ASTERISK-27277 Change-Id: I30ccbdba16ca073d7f31e0e59ab778c153afae07
This commit is contained in:
@@ -4228,6 +4228,7 @@ static int attribute_const is_visible_indication(enum ast_control_frame_type con
|
||||
case AST_CONTROL_MASQUERADE_NOTIFY:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_CHANGED:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_SOURCE_CHANGED:
|
||||
case AST_CONTROL_STREAM_STOP:
|
||||
case AST_CONTROL_STREAM_SUSPEND:
|
||||
case AST_CONTROL_STREAM_REVERSE:
|
||||
@@ -4528,6 +4529,7 @@ static int indicate_data_internal(struct ast_channel *chan, int _condition, cons
|
||||
case AST_CONTROL_UPDATE_RTP_PEER:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_CHANGED:
|
||||
case AST_CONTROL_STREAM_TOPOLOGY_SOURCE_CHANGED:
|
||||
case AST_CONTROL_STREAM_STOP:
|
||||
case AST_CONTROL_STREAM_SUSPEND:
|
||||
case AST_CONTROL_STREAM_REVERSE:
|
||||
|
||||
Reference in New Issue
Block a user