Merge pull request #1541 in FS/freeswitch from ~THEHUNMONKGROUP/freeswitch:bugfix/FS-11276-regression-dedicated-video-layers to master
* commit 'c83f7871fa8c5464c39a04b9b09938081c071155': FS-11276: dedicated video layers can no longer become audio floor holder
This commit is contained in:
commit
350225a446
|
@ -2316,7 +2316,7 @@ switch_status_t conference_api_sub_floor(conference_member_t *member, switch_str
|
||||||
if (member == NULL)
|
if (member == NULL)
|
||||||
return SWITCH_STATUS_GENERR;
|
return SWITCH_STATUS_GENERR;
|
||||||
|
|
||||||
if (conference_utils_member_test_flag(member, MFLAG_DED_VID_LAYER)) {
|
if (conference_utils_member_test_flag(member, MFLAG_DED_VID_LAYER) && !conference_utils_test_flag(member->conference, CFLAG_DED_VID_LAYER_AUDIO_FLOOR)) {
|
||||||
if (stream != NULL) {
|
if (stream != NULL) {
|
||||||
stream->write_function(stream, "-ERR cannot set floor on a member in an active video role\n");
|
stream->write_function(stream, "-ERR cannot set floor on a member in an active video role\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1081,7 +1081,7 @@ void conference_member_set_floor_holder(conference_obj_t *conference, conference
|
||||||
member = lmember = conference_member_get(conference, id);
|
member = lmember = conference_member_get(conference, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (member && conference_utils_member_test_flag(member, MFLAG_DED_VID_LAYER)) {
|
if (member && conference_utils_member_test_flag(member, MFLAG_DED_VID_LAYER) && !conference_utils_test_flag(conference, CFLAG_DED_VID_LAYER_AUDIO_FLOOR)) {
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,6 +214,8 @@ void conference_utils_set_cflags(const char *flags, conference_flag_t *f)
|
||||||
f[CFLAG_MANAGE_INBOUND_VIDEO_BITRATE] = 1;
|
f[CFLAG_MANAGE_INBOUND_VIDEO_BITRATE] = 1;
|
||||||
} else if (!strcasecmp(argv[i], "video-muxing-personal-canvas")) {
|
} else if (!strcasecmp(argv[i], "video-muxing-personal-canvas")) {
|
||||||
f[CFLAG_PERSONAL_CANVAS] = 1;
|
f[CFLAG_PERSONAL_CANVAS] = 1;
|
||||||
|
} else if (!strcasecmp(argv[i], "ded-vid-layer-audio-floor")) {
|
||||||
|
f[CFLAG_DED_VID_LAYER_AUDIO_FLOOR] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,7 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
|
||||||
//(!conference_utils_test_flag(conference, CFLAG_VID_FLOOR) || switch_channel_test_flag(channel, CF_VIDEO))) {
|
//(!conference_utils_test_flag(conference, CFLAG_VID_FLOOR) || switch_channel_test_flag(channel, CF_VIDEO))) {
|
||||||
|
|
||||||
|
|
||||||
if (!conference_utils_member_test_flag(imember, MFLAG_DED_VID_LAYER)) {
|
if (!conference_utils_member_test_flag(imember, MFLAG_DED_VID_LAYER) || conference_utils_test_flag(conference, CFLAG_DED_VID_LAYER_AUDIO_FLOOR)) {
|
||||||
conference_member_set_floor_holder(conference, imember, 0);
|
conference_member_set_floor_holder(conference, imember, 0);
|
||||||
floor_holder = conference->floor_holder;
|
floor_holder = conference->floor_holder;
|
||||||
}
|
}
|
||||||
|
|
|
@ -261,6 +261,7 @@ typedef enum {
|
||||||
CFLAG_REFRESH_LAYOUT,
|
CFLAG_REFRESH_LAYOUT,
|
||||||
CFLAG_VIDEO_MUTE_EXIT_CANVAS,
|
CFLAG_VIDEO_MUTE_EXIT_CANVAS,
|
||||||
CFLAG_NO_MOH,
|
CFLAG_NO_MOH,
|
||||||
|
CFLAG_DED_VID_LAYER_AUDIO_FLOOR,
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
CFLAG_MAX
|
CFLAG_MAX
|
||||||
} conference_flag_t;
|
} conference_flag_t;
|
||||||
|
|
Loading…
Reference in New Issue