summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-11-07 16:03:41 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-11-07 16:03:41 -0600
commita12c64cbba499dfa39d70b1c5c0872923d5b8ad7 (patch)
treea1941d1e1172bc36c3a70273de4cbee4680125c9
parent7d966c52715a50b3d7cdb1d75c60ce1c774ad2ac (diff)
parentff96e3750996cb576f1253b3ee25074c2ea18e00 (diff)
Merge "bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source" into 14
-rw-r--r--bridges/bridge_softmix.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c
index 0991e2897..1c35a2316 100644
--- a/bridges/bridge_softmix.c
+++ b/bridges/bridge_softmix.c
@@ -442,21 +442,6 @@ static void softmix_bridge_unsuspend(struct ast_bridge *bridge, struct ast_bridg
}
}
-/*!
- * \internal
- * \brief Indicate a source change to the channel.
- * \since 12.0.0
- *
- * \param bridge_channel Which channel source is changing.
- *
- * \retval 0 on success.
- * \retval -1 on error.
- */
-static int softmix_src_change(struct ast_bridge_channel *bridge_channel)
-{
- return ast_bridge_channel_queue_control_data(bridge_channel, AST_CONTROL_SRCCHANGE, NULL, 0);
-}
-
/*! \brief Function called when a channel is joined into the bridge */
static int softmix_bridge_join(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
{
@@ -473,8 +458,6 @@ static int softmix_bridge_join(struct ast_bridge *bridge, struct ast_bridge_chan
return -1;
}
- softmix_src_change(bridge_channel);
-
/* Can't forget the lock */
ast_mutex_init(&sc->lock);
@@ -501,8 +484,6 @@ static void softmix_bridge_leave(struct ast_bridge *bridge, struct ast_bridge_ch
}
bridge_channel->tech_pvt = NULL;
- softmix_src_change(bridge_channel);
-
/* Drop mutex lock */
ast_mutex_destroy(&sc->lock);
@@ -696,6 +677,15 @@ static int softmix_bridge_write_control(struct ast_bridge *bridge, struct ast_br
* XXX Softmix needs to use channel roles to determine what to
* do with control frames.
*/
+
+ switch (frame->subclass.integer) {
+ case AST_CONTROL_VIDUPDATE:
+ ast_bridge_queue_everyone_else(bridge, NULL, frame);
+ break;
+ default:
+ break;
+ }
+
return 0;
}