FS-7499 FS-7513 video mute the old way seems to break chrome when resuming, add some improvements to mitigate

This commit is contained in:
Anthony Minessale 2015-05-06 14:23:10 -05:00 committed by Michael Jerris
parent 772665e0fa
commit 22ec9c378e
2 changed files with 12 additions and 8 deletions

View File

@ -2029,7 +2029,6 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread
}
imember->blanks = 0;
switch_core_session_request_video_refresh(imember->session);
switch_channel_video_sync(imember->channel);
}
@ -8319,11 +8318,11 @@ static switch_status_t conf_api_sub_vmute(conference_member_t *member, switch_st
switch_clear_flag_locked(member, MFLAG_CAN_BE_SEEN);
if (member->channel) {
switch_channel_set_flag(member->channel, CF_VIDEO_PAUSE_READ);
switch_core_session_request_video_refresh(member->session);
switch_channel_video_sync(member->channel);
}
//if (member->channel) {
//switch_channel_set_flag(member->channel, CF_VIDEO_PAUSE_READ);
//switch_core_session_request_video_refresh(member->session);
//switch_channel_video_sync(member->channel);
//}
if (!(data) || !strstr((char *) data, "quiet")) {
switch_set_flag(member, MFLAG_INDICATE_MUTE);
@ -8378,8 +8377,7 @@ static switch_status_t conf_api_sub_unvmute(conference_member_t *member, switch_
switch_set_flag_locked(member, MFLAG_CAN_BE_SEEN);
if (member->channel) {
switch_channel_clear_flag(member->channel, CF_VIDEO_PAUSE_READ);
switch_core_session_request_video_refresh(member->session);
//switch_channel_clear_flag(member->channel, CF_VIDEO_PAUSE_READ);
switch_channel_video_sync(member->channel);
}

View File

@ -4791,6 +4791,12 @@ static void do_flush(switch_rtp_t *rtp_session, int force)
}
}
if (rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->session) {
int type = 1; // sum flags: 1 encoder; 2; decoder
switch_core_media_codec_control(rtp_session->session, SWITCH_MEDIA_TYPE_VIDEO, SWITCH_IO_READ, SCC_VIDEO_RESET, SCCT_INT, (void *)&type, NULL, NULL);
switch_core_session_request_video_refresh(rtp_session->session);
}
READ_DEC(rtp_session);
}