]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8317 #resolve [Playing stacked video files sometimes makes the floor layer unusable]
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 7 Oct 2015 17:43:10 +0000 (12:43 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 7 Oct 2015 17:43:20 +0000 (12:43 -0500)
src/mod/applications/mod_conference/conference_file.c
src/mod/applications/mod_conference/conference_video.c

index 30e46757db9ddc0d2c25b366ea52d3ac8b3d167e..45a7913d3fb76197be27e42ec9ae6d12aefab553 100644 (file)
@@ -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);
                }
index 6935e61cd86664daca905f3652faabbfd5ff71e2..bf469577ca1f226fe9865434ffb68197a29145f8 100644 (file)
@@ -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;
                        }
                }