diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index 42830624a1..97fdce3266 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -2697,18 +2697,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; } @@ -2807,8 +2815,8 @@ 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; diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index af6ab7c57f..967faa5c7d 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -2650,7 +2650,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;