diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 2664174128..f95391c266 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -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); } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 9bb4287a69..24b87d0eea 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -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); }