mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-18 09:32:34 +00:00
FS-7940 #resolve
This commit is contained in:
parent
25d9184e10
commit
78ac8e5560
@ -701,7 +701,7 @@ switch_status_t conference_api_sub_canvas(conference_member_t *member, switch_st
|
|||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
char *val = (char *) data;
|
char *val = (char *) data;
|
||||||
mcu_canvas_t *canvas = NULL;
|
//mcu_canvas_t *canvas = NULL;
|
||||||
|
|
||||||
if (member->conference->canvas_count == 1) {
|
if (member->conference->canvas_count == 1) {
|
||||||
stream->write_function(stream, "-ERR Only 1 Canvas\n");
|
stream->write_function(stream, "-ERR Only 1 Canvas\n");
|
||||||
@ -722,8 +722,8 @@ switch_status_t conference_api_sub_canvas(conference_member_t *member, switch_st
|
|||||||
member->canvas_id = index;
|
member->canvas_id = index;
|
||||||
member->layer_timeout = DEFAULT_LAYER_TIMEOUT;
|
member->layer_timeout = DEFAULT_LAYER_TIMEOUT;
|
||||||
|
|
||||||
canvas = member->conference->canvases[member->canvas_id];
|
//canvas = member->conference->canvases[member->canvas_id];
|
||||||
conference_video_attach_video_layer(member, canvas, index);
|
//conference_video_attach_video_layer(member, canvas, index);
|
||||||
conference_video_reset_member_codec_index(member);
|
conference_video_reset_member_codec_index(member);
|
||||||
switch_mutex_unlock(member->conference->canvas_mutex);
|
switch_mutex_unlock(member->conference->canvas_mutex);
|
||||||
|
|
||||||
|
@ -1720,7 +1720,7 @@ switch_status_t conference_video_find_layer(conference_obj_t *conference, mcu_ca
|
|||||||
}
|
}
|
||||||
} else if ((!xlayer->member_id || (!member->avatar_png_img &&
|
} else if ((!xlayer->member_id || (!member->avatar_png_img &&
|
||||||
xlayer->is_avatar &&
|
xlayer->is_avatar &&
|
||||||
xlayer->member_id != conference->video_floor_holder)) &&
|
(conference->canvas_count > 1 || xlayer->member_id != conference->video_floor_holder))) &&
|
||||||
!xlayer->fnode && !xlayer->geometry.fileonly) {
|
!xlayer->fnode && !xlayer->geometry.fileonly) {
|
||||||
switch_status_t lstatus;
|
switch_status_t lstatus;
|
||||||
|
|
||||||
@ -2099,11 +2099,12 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
|||||||
switch_img_free(&img);
|
switch_img_free(&img);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!layer) {
|
if (!layer && (!conference_utils_test_flag(imember->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS) || (switch_channel_test_flag(imember->channel, CF_VIDEO) && !imember->video_flow == SWITCH_MEDIA_FLOW_SENDONLY))) {
|
||||||
if (conference_video_find_layer(conference, canvas, imember, &layer) == SWITCH_STATUS_SUCCESS) {
|
if (conference_video_find_layer(conference, canvas, imember, &layer) == SWITCH_STATUS_SUCCESS) {
|
||||||
imember->layer_timeout = 0;
|
imember->layer_timeout = 0;
|
||||||
} else {
|
} else {
|
||||||
if (--imember->layer_timeout <= 0) {
|
if (--imember->layer_timeout <= 0) {
|
||||||
|
|
||||||
conference_video_next_canvas(imember);
|
conference_video_next_canvas(imember);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2516,7 +2517,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!x) break;
|
if (!x) break;
|
||||||
|
|
||||||
switch_thread_rwlock_wrlock(canvas->video_rwlock);
|
switch_thread_rwlock_wrlock(canvas->video_rwlock);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user