mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-23 20:51:58 +00:00
FS-8053 addtl touchups
This commit is contained in:
@@ -3264,13 +3264,27 @@ void conference_video_write_frame(conference_obj_t *conference, conference_membe
|
||||
|
||||
switch_core_session_rwunlock(isession);
|
||||
}
|
||||
|
||||
if (want_refresh) {
|
||||
for (imember = conference->members; imember; imember = imember->next) {
|
||||
switch_core_session_t *isession = imember->session;
|
||||
|
||||
if (!isession || switch_core_session_read_lock(isession) != SWITCH_STATUS_SUCCESS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isession || !switch_channel_test_flag(imember->channel, CF_VIDEO) ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch_core_session_request_video_refresh(imember->session);
|
||||
switch_core_session_rwunlock(isession);
|
||||
}
|
||||
}
|
||||
|
||||
switch_mutex_unlock(conference->member_mutex);
|
||||
|
||||
switch_img_free(&tmp_frame.img);
|
||||
|
||||
if (want_refresh && floor_holder->session) {
|
||||
switch_core_session_request_video_refresh(floor_holder->session);
|
||||
}
|
||||
}
|
||||
|
||||
switch_status_t conference_video_thread_callback(switch_core_session_t *session, switch_frame_t *frame, void *user_data)
|
||||
@@ -3286,6 +3300,9 @@ switch_status_t conference_video_thread_callback(switch_core_session_t *session,
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (switch_core_session_media_flow(session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (switch_thread_rwlock_tryrdlock(member->conference->rwlock) != SWITCH_STATUS_SUCCESS) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
|
||||
@@ -302,8 +302,11 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
|
||||
|
||||
if (imember->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
|
||||
conference_utils_member_clear_flag(imember, MFLAG_CAN_BE_SEEN);
|
||||
conference_video_find_floor(imember, SWITCH_FALSE);
|
||||
} else {
|
||||
conference_utils_member_set_flag(imember, MFLAG_CAN_BE_SEEN);
|
||||
conference_video_find_floor(imember, SWITCH_TRUE);
|
||||
switch_core_session_request_video_refresh(imember->session);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user