提交 0d40025e authored 作者: Anthony Minessale's avatar Anthony Minessale 提交者: Muteesa Fred

FS-10891: [mod_conference] Refactor mux video to be smoother #resolve

上级 57daad7a
...@@ -2625,11 +2625,15 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t ...@@ -2625,11 +2625,15 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t
switch_image_t *img = *imgP; switch_image_t *img = *imgP;
int size = 0; int size = 0;
void *pop; void *pop;
int half;
//if (member->avatar_png_img && switch_channel_test_flag(member->channel, CF_VIDEO_READY) && conference_utils_member_test_flag(member, MFLAG_ACK_VIDEO)) { //if (member->avatar_png_img && switch_channel_test_flag(member->channel, CF_VIDEO_READY) && conference_utils_member_test_flag(member, MFLAG_ACK_VIDEO)) {
// switch_img_free(&member->avatar_png_img); // switch_img_free(&member->avatar_png_img);
//} //}
if ((half = switch_queue_size(member->video_queue) / 2) < 1) {
half = 1;
}
if (switch_channel_test_flag(member->channel, CF_VIDEO_READY)) { if (switch_channel_test_flag(member->channel, CF_VIDEO_READY)) {
do { do {
pop = NULL; pop = NULL;
...@@ -2641,7 +2645,7 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t ...@@ -2641,7 +2645,7 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t
break; break;
} }
size = switch_queue_size(member->video_queue); size = switch_queue_size(member->video_queue);
} while(size > 0); } while(size > half);
if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) &&
member->video_layer_id > -1 && member->video_layer_id > -1 &&
...@@ -4809,7 +4813,7 @@ switch_status_t conference_video_thread_callback(switch_core_session_t *session, ...@@ -4809,7 +4813,7 @@ switch_status_t conference_video_thread_callback(switch_core_session_t *session,
if (frame->img && (((member->video_layer_id > -1) && canvas_id > -1) || member->canvas) && if (frame->img && (((member->video_layer_id > -1) && canvas_id > -1) || member->canvas) &&
conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) &&
switch_queue_size(member->video_queue) < 2 && //member->conference->video_fps.fps * 2 && switch_queue_size(member->video_queue) < member->conference->video_fps.fps &&
!member->conference->canvases[canvas_id]->playing_video_file) { !member->conference->canvases[canvas_id]->playing_video_file) {
if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO) || conference_utils_member_test_flag(member, MFLAG_ROTATE_VIDEO)) { if (conference_utils_member_test_flag(member, MFLAG_FLIP_VIDEO) || conference_utils_member_test_flag(member, MFLAG_ROTATE_VIDEO)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论