fix(screenshare): request ejection when presenter automatically changes

Fixes an edge case where screen ejections weren't being requested internally on
ungraceful presenter changes
This commit is contained in:
prlanzarin 2022-03-02 17:48:25 -03:00
parent 79d5c835c0
commit c7f0c23731

View File

@ -8,6 +8,7 @@ import org.bigbluebutton.core.bus.InternalEventBus
import org.bigbluebutton.core.models._ import org.bigbluebutton.core.models._
import org.bigbluebutton.core.running.{ LiveMeeting, OutMsgRouter } import org.bigbluebutton.core.running.{ LiveMeeting, OutMsgRouter }
import org.bigbluebutton.core2.message.senders.{ MsgBuilder, Sender } import org.bigbluebutton.core2.message.senders.{ MsgBuilder, Sender }
import org.bigbluebutton.core.apps.screenshare.ScreenshareApp2x
object UsersApp { object UsersApp {
def broadcastAddUserToPresenterGroup(meetingId: String, userId: String, requesterId: String, def broadcastAddUserToPresenterGroup(meetingId: String, userId: String, requesterId: String,
@ -56,6 +57,9 @@ object UsersApp {
def automaticallyAssignPresenter(outGW: OutMsgRouter, liveMeeting: LiveMeeting): Unit = { def automaticallyAssignPresenter(outGW: OutMsgRouter, liveMeeting: LiveMeeting): Unit = {
// Stop external video if it's running // Stop external video if it's running
ExternalVideoModel.stop(outGW, liveMeeting) ExternalVideoModel.stop(outGW, liveMeeting)
// Request a screen broadcast stop (goes to SFU, comes back through
// ScreenshareRtmpBroadcastStoppedVoiceConfEvtMsg)
ScreenshareApp2x.requestBroadcastStop(outGW, liveMeeting)
val meetingId = liveMeeting.props.meetingProp.intId val meetingId = liveMeeting.props.meetingProp.intId
for { for {