diff --git a/src/mod/applications/mod_conference/conference_file.c b/src/mod/applications/mod_conference/conference_file.c index 30e46757db..45a7913d3f 100644 --- a/src/mod/applications/mod_conference/conference_file.c +++ b/src/mod/applications/mod_conference/conference_file.c @@ -56,6 +56,11 @@ switch_status_t conference_file_close(conference_obj_t *conference, conference_f switch_event_add_header(event, SWITCH_STACK_BOTTOM, "milliseconds", "%ld", (long) node->fh.samples_in / (node->fh.native_rate / 1000)); switch_event_add_header(event, SWITCH_STACK_BOTTOM, "samples", "%ld", (long) node->fh.samples_in); + if (node->layer_id && node->layer_id > -1) { + if (node->canvas_id < 0) node->canvas_id = 0; + conference_video_canvas_del_fnode_layer(conference, node); + } + if (node->fh.params) { switch_event_merge(event, node->fh.params); } diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index 6935e61cd8..bf469577ca 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -1380,8 +1380,8 @@ void conference_video_canvas_set_fnode_layer(mcu_canvas_t *canvas, conference_fi if (canvas->layout_floor_id > -1) { idx = canvas->layout_floor_id; xlayer = &canvas->layers[idx]; - - if (xlayer->fnode) { + + if (xlayer->fnode && xlayer->fnode != fnode) { idx = -1; } }