int y_pos;
int banner_patched;
int mute_patched;
+ int refresh;
switch_img_position_t logo_pos;
switch_image_t *img;
switch_image_t *cur_img;
int total_layers;
int layers_used;
int layout_floor_id;
+ int refresh;
switch_rgb_color_t bgcolor;
switch_mutex_t *mutex;
switch_timer_t timer;
layer->banner_patched = 0;
+ if (layer->geometry.overlap) {
+ canvas->refresh = 1;
+ }
+
switch_img_free(&layer->img);
layer->img = switch_img_alloc(NULL, SWITCH_IMG_FMT_I420, layer->screen_w, layer->screen_h, 1);
switch_assert(layer->img);
IMG = conference->canvas->img;
img = ximg ? ximg : layer->cur_img;
+ if (layer->refresh) {
+ switch_rgb_color_t color;
+ switch_color_set_rgb(&color, conference->video_layout_bgcolor);
+ switch_img_fill(conference->canvas->img, layer->x_pos, layer->y_pos, layer->screen_w, layer->screen_h, &color);
+ layer->refresh = 0;
+ }
+
if (layer->geometry.scale) {
int img_w = 0, img_h = 0;
double screen_aspect = 0, img_aspect = 0;
mcu_layer_t *layer = &conference->canvas->layers[i];
if (layer->member_id > -1 && layer->cur_img && (layer->tagged || layer->geometry.overlap)) {
+ if (conference->canvas->refresh) {
+ layer->refresh = 1;
+ conference->canvas->refresh++;
+ }
+
scale_and_patch(conference, layer, NULL);
layer->tagged = 0;
}
}
+ if (conference->canvas->refresh > 1) {
+ conference->canvas->refresh = 0;
+ }
+
#if 0
if (1) {
switch_img_txt_handle_t *txthandle = NULL;