提交 3ed616e4 authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-10472: [mod_conference] Crash due to hangup race in conference personal…

FS-10472: [mod_conference] Crash due to hangup race in conference personal canvas mode -- the saga continues
上级 c90cc5e7
...@@ -3002,7 +3002,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr ...@@ -3002,7 +3002,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
} }
} }
if (layer) { if (layer && !file_count) {
personal_attach(layer, omember); personal_attach(layer, omember);
} }
...@@ -3022,7 +3022,9 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr ...@@ -3022,7 +3022,9 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
layer->avatar_patched = 0; layer->avatar_patched = 0;
} else { } else {
if (!layer->avatar_patched) { if (!layer->avatar_patched) {
conference_video_scale_and_patch(layer, omember->avatar_png_img, SWITCH_FALSE); if (omember->avatar_png_img) {
switch_img_copy(omember->avatar_png_img, &layer->cur_img);
}
layer->avatar_patched = 1; layer->avatar_patched = 1;
} }
use_img = NULL; use_img = NULL;
...@@ -3043,7 +3045,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr ...@@ -3043,7 +3045,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
switch_img_fit(&tmp, layer->screen_w, layer->screen_h, SWITCH_FIT_SIZE); switch_img_fit(&tmp, layer->screen_w, layer->screen_h, SWITCH_FIT_SIZE);
//conference_video_member_video_mute_banner(imember->canvas, layer, imember); //conference_video_member_video_mute_banner(imember->canvas, layer, imember);
conference_video_member_video_mute_banner(tmp, omember); conference_video_member_video_mute_banner(tmp, omember);
conference_video_scale_and_patch(layer, tmp, SWITCH_FALSE); switch_img_copy(tmp, &layer->cur_img);
} }
layer->mute_patched = 1; layer->mute_patched = 1;
...@@ -3069,6 +3071,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr ...@@ -3069,6 +3071,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
switch_image_t *img = file_imgs[j]; switch_image_t *img = file_imgs[j];
layer = NULL; layer = NULL;
if (!img) continue;
if (j == 0 && imember->canvas->layout_floor_id > -1) { if (j == 0 && imember->canvas->layout_floor_id > -1) {
layer = &imember->canvas->layers[imember->canvas->layout_floor_id]; layer = &imember->canvas->layers[imember->canvas->layout_floor_id];
} else if (i < imember->canvas->total_layers) { } else if (i < imember->canvas->total_layers) {
...@@ -3079,7 +3083,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr ...@@ -3079,7 +3083,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
switch_img_free(&layer->banner_img); switch_img_free(&layer->banner_img);
switch_img_free(&layer->logo_img); switch_img_free(&layer->logo_img);
layer->member_id = -1; layer->member_id = -1;
conference_video_scale_and_patch(layer, img, SWITCH_FALSE); switch_img_copy(img, &layer->cur_img);
conference_video_scale_and_patch(layer, NULL, SWITCH_FALSE);
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论