summaryrefslogtreecommitdiff
path: root/bridges/bridge_softmix/include/bridge_softmix_internal.h
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-10-14 19:41:37 +0000
committerJoshua Colp <jcolp@digium.com>2017-10-17 05:45:40 -0500
commit5d8c517960d4d807f4b242a775c232bbcf18c044 (patch)
tree797efb8925fd47019def05f058c2e0261f5c851c /bridges/bridge_softmix/include/bridge_softmix_internal.h
parent3a2b132411c88d2b2494c3085c79253256bda053 (diff)
bridge_softmix: Reduce topology cloning and improve renegotiation.
As channels join and leave an SFU the bridge_softmix module needs to renegotiate to add and remove their streams from the other participants. Previously this was done by constructing the ideal stream topology every time but in the case of leave this was incomplete. This change makes it so bridge_softmix keeps an ideal stream topology for each channel and uses it when making changes. This ensures that when we request a renegotiation we are always certain that we are aiming for the best stream topology possible. In the case of a channel leaving this ensures that we try to have an existing participant fill their place if a participant has a fixed limit on the maximum number of video streams they allow. ASTERISK-27354 Change-Id: I58070f421ddeadd2844a33b869b052630cf2e514
Diffstat (limited to 'bridges/bridge_softmix/include/bridge_softmix_internal.h')
-rw-r--r--bridges/bridge_softmix/include/bridge_softmix_internal.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/bridges/bridge_softmix/include/bridge_softmix_internal.h b/bridges/bridge_softmix/include/bridge_softmix_internal.h
index f93e66391..01e65aa1f 100644
--- a/bridges/bridge_softmix/include/bridge_softmix_internal.h
+++ b/bridges/bridge_softmix/include/bridge_softmix_internal.h
@@ -167,6 +167,8 @@ struct softmix_channel {
short our_buf[MAX_DATALEN];
/*! Data pertaining to talker mode for video conferencing */
struct video_follow_talker_data video_talker;
+ /*! The ideal stream topology for the channel */
+ struct ast_stream_topology *topology;
};
struct softmix_bridge_data {