]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10571: [mod_conference,RTP] TMMBR messages request the same size for any user...
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 21 Aug 2017 17:37:03 +0000 (12:37 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 21 Aug 2017 17:38:59 +0000 (12:38 -0500)
src/mod/applications/mod_conference/conference_video.c
src/mod/applications/mod_conference/mod_conference.c

index fc7e8d56139df045b6d38c171cf707c291f0f303..389bee709d96b31578378e9248e828949e68d069 100644 (file)
@@ -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) {
index 2686b2a53ba4c06e2746de85f57917e58861f3b6..7e521ac34d8f371904d98e64fef9060c4e80d7d6 100644 (file)
@@ -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;