switch_thread_rwlock_wrlock(canvas->video_rwlock);
switch_mutex_lock(canvas->mutex);
- canvas->layout_floor_id = -1;
for (i = 0; i < MCU_MAX_LAYERS; i++) {
mcu_layer_t *layer = &canvas->layers[i];
return;
}
+ canvas->layout_floor_id = -1;
+
if (!vlayout) {
vlayout = canvas->new_vlayout;
canvas->new_vlayout = NULL;
for (j = 0; j < file_count; j++) {
switch_image_t *img = file_imgs[j];
+ layer = NULL;
if (j == 0 && imember->canvas->layout_floor_id > -1) {
layer = &imember->canvas->layers[imember->canvas->layout_floor_id];
- conference_video_scale_and_patch(layer, img, SWITCH_FALSE);
} else if (i < imember->canvas->total_layers) {
layer = &imember->canvas->layers[i++];
- conference_video_scale_and_patch(layer, img, SWITCH_FALSE);
}
- }
- if (imember->session) {
- switch_core_session_rwunlock(imember->session);
+ if (layer) {
+ switch_img_free(&layer->banner_img);
+ switch_img_free(&layer->logo_img);
+ layer->member_id = -1;
+ conference_video_scale_and_patch(layer, img, SWITCH_FALSE);
+ }
}
}