summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2016-11-07 16:01:03 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-11-07 16:01:03 -0600
commit94de6b7ae4485fcec56f67d94b3b9cb767ea69c4 (patch)
tree559174f2b0bc4b773eac32a7a56da16f00433353
parent15665daf4654121f805b6faab2ae4d89b49d76b6 (diff)
parentfb17b630a5992a920dd2d81d6f8c1183c29fe353 (diff)
Merge "bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source"
-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 31b72265f..a0b147497 100644
--- a/bridges/bridge_softmix.c
+++ b/bridges/bridge_softmix.c
@@ -440,21 +440,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)
{
@@ -471,8 +456,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);
@@ -499,8 +482,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);
@@ -694,6 +675,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;
}