diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index fc7e8d5613..389bee709d 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -2144,18 +2144,26 @@ void conference_video_set_incoming_bitrate(conference_member_t *member, int kps, member->auto_kps_debounce_ticks = member->conference->auto_kps_debounce / member->conference->video_fps.ms; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s setting bitrate debounce timer to %dms\n", switch_channel_get_name(member->channel), member->conference->auto_kps_debounce); + member->managed_kps = kps; member->managed_kps_set = 0; return; } + if (member->managed_kps_set == kps) { + return; + } + + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "%s sending message to set bitrate to %dkps\n", + switch_channel_get_name(member->channel), kps); + msg.message_id = SWITCH_MESSAGE_INDICATE_BITRATE_REQ; msg.numeric_arg = kps * 1024; msg.from = __FILE__; switch_core_session_receive_message(member->session, &msg); - member->managed_kps_set = 1; + member->managed_kps_set = kps; member->managed_kps = kps; } @@ -2254,9 +2262,9 @@ void conference_video_check_auto_bitrate(conference_member_t *member, mcu_layer_ kps = kps_in; } - min_layer = kps / 2; - min = kps_in / 2; - + min_layer = kps / 8; + min = kps_in / 8; + if (min_layer > min) min = min_layer; if (member->conference->max_bw_in) { diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 2686b2a53b..7e521ac34d 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -2439,7 +2439,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co char *video_mute_banner = NULL; conference_video_mode_t conference_video_mode = CONF_VIDEO_MODE_PASSTHROUGH; int conference_video_quality = 1; - int auto_kps_debounce = 30000; + int auto_kps_debounce = 5000; float fps = 30.0f; uint32_t max_members = 0; uint32_t announce_count = 0;