mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-12 18:17:59 +00:00
FS-10091: [mod_conference] Conference play file with full-screen=true has side effect on member video -- - manual cherry pick
This commit is contained in:
parent
1a7c04da88
commit
35542d33ee
@ -94,8 +94,11 @@ switch_status_t conference_file_close(conference_obj_t *conference, conference_f
|
|||||||
|
|
||||||
if (conference->playing_video_file) {
|
if (conference->playing_video_file) {
|
||||||
conference->canvases[node->canvas_id]->send_keyframe = 1;
|
conference->canvases[node->canvas_id]->send_keyframe = 1;
|
||||||
|
conference->canvases[node->canvas_id]->play_file = 0;
|
||||||
conference->playing_video_file = 0;
|
conference->playing_video_file = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return switch_core_file_close(&node->fh);
|
return switch_core_file_close(&node->fh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1949,7 +1949,9 @@ void conference_video_fnode_check(conference_file_node_t *fnode, int canvas_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (full_screen) {
|
if (full_screen) {
|
||||||
|
if (canvas->play_file == 0) {
|
||||||
canvas->play_file = 1;
|
canvas->play_file = 1;
|
||||||
|
}
|
||||||
canvas->conference->playing_video_file = 1;
|
canvas->conference->playing_video_file = 1;
|
||||||
} else {
|
} else {
|
||||||
conference_video_canvas_set_fnode_layer(canvas, fnode, -1);
|
conference_video_canvas_set_fnode_layer(canvas, fnode, -1);
|
||||||
@ -3244,16 +3246,22 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
|||||||
|
|
||||||
if (conference->playing_video_file) {
|
if (conference->playing_video_file) {
|
||||||
if (switch_core_file_read_video(&conference->fnode->fh, &write_frame, SVR_FLUSH) == SWITCH_STATUS_SUCCESS) {
|
if (switch_core_file_read_video(&conference->fnode->fh, &write_frame, SVR_FLUSH) == SWITCH_STATUS_SUCCESS) {
|
||||||
switch_img_free(&file_img);
|
switch_image_t *tmp = NULL;
|
||||||
|
|
||||||
if (canvas->play_file) {
|
if (canvas->play_file == 1) {
|
||||||
canvas->send_keyframe = 1;
|
canvas->send_keyframe = 1;
|
||||||
canvas->play_file = 0;
|
canvas->play_file = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_img_free(&file_img);
|
switch_img_free(&file_img);
|
||||||
switch_img_fit(&write_frame.img, canvas->img->d_w, canvas->img->d_h, SWITCH_FIT_SIZE);
|
|
||||||
|
switch_img_letterbox(write_frame.img, &tmp, canvas->img->d_w, canvas->img->d_h, "#000000");
|
||||||
|
if (tmp) {
|
||||||
|
switch_img_free(&write_frame.img);
|
||||||
|
file_img = write_img = write_frame.img = tmp;
|
||||||
|
} else {
|
||||||
file_img = write_img = write_frame.img;
|
file_img = write_img = write_frame.img;
|
||||||
|
}
|
||||||
|
|
||||||
//switch_core_timer_sync(&canvas->timer);
|
//switch_core_timer_sync(&canvas->timer);
|
||||||
timestamp = canvas->timer.samplecount;
|
timestamp = canvas->timer.samplecount;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user