{
int index;
char *val = (char *) data;
- mcu_canvas_t *canvas = NULL;
+ //mcu_canvas_t *canvas = NULL;
if (member->conference->canvas_count == 1) {
stream->write_function(stream, "-ERR Only 1 Canvas\n");
member->canvas_id = index;
member->layer_timeout = DEFAULT_LAYER_TIMEOUT;
- canvas = member->conference->canvases[member->canvas_id];
- conference_video_attach_video_layer(member, canvas, index);
+ //canvas = member->conference->canvases[member->canvas_id];
+ //conference_video_attach_video_layer(member, canvas, index);
conference_video_reset_member_codec_index(member);
switch_mutex_unlock(member->conference->canvas_mutex);
}
} else if ((!xlayer->member_id || (!member->avatar_png_img &&
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) {
switch_status_t lstatus;
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) {
imember->layer_timeout = 0;
} else {
if (--imember->layer_timeout <= 0) {
+
conference_video_next_canvas(imember);
}
}
}
}
}
-
+
if (!x) break;
switch_thread_rwlock_wrlock(canvas->video_rwlock);