mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-05-23 07:26:01 +00:00
[mod_conference] Fix memory consumption and Media flow direction issue.
This commit is contained in:
parent
4b580a07c4
commit
c460588dfe
@ -2479,9 +2479,13 @@ SWITCH_STANDARD_APP(conference_function)
|
|||||||
do {
|
do {
|
||||||
switch_media_flow_t audio_flow = switch_core_session_media_flow(session, SWITCH_MEDIA_TYPE_AUDIO);
|
switch_media_flow_t audio_flow = switch_core_session_media_flow(session, SWITCH_MEDIA_TYPE_AUDIO);
|
||||||
|
|
||||||
if (switch_channel_test_flag(channel, CF_AUDIO) && (audio_flow == SWITCH_MEDIA_FLOW_SENDRECV || audio_flow == SWITCH_MEDIA_FLOW_RECVONLY)) {
|
if (switch_channel_test_flag(channel, CF_AUDIO) && (audio_flow == SWITCH_MEDIA_FLOW_SENDRECV || audio_flow == SWITCH_MEDIA_FLOW_SENDONLY)) {
|
||||||
conference_loop_output(&member);
|
conference_loop_output(&member);
|
||||||
} else {
|
} else {
|
||||||
|
if (!member.input_thread) {
|
||||||
|
conference_loop_launch_input(&member, switch_core_session_get_pool(member.session));
|
||||||
|
}
|
||||||
|
|
||||||
if (conference_utils_member_test_flag((&member), MFLAG_RUNNING) && switch_channel_ready(channel)) {
|
if (conference_utils_member_test_flag((&member), MFLAG_RUNNING) && switch_channel_ready(channel)) {
|
||||||
switch_yield(100000);
|
switch_yield(100000);
|
||||||
member.loop_loop = 1;
|
member.loop_loop = 1;
|
||||||
|
@ -1110,6 +1110,7 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
|
|||||||
void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thread, void *obj);
|
void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thread, void *obj);
|
||||||
void *SWITCH_THREAD_FUNC conference_video_super_muxing_thread_run(switch_thread_t *thread, void *obj);
|
void *SWITCH_THREAD_FUNC conference_video_super_muxing_thread_run(switch_thread_t *thread, void *obj);
|
||||||
void conference_loop_output(conference_member_t *member);
|
void conference_loop_output(conference_member_t *member);
|
||||||
|
void conference_loop_launch_input(conference_member_t *member, switch_memory_pool_t *pool);
|
||||||
uint32_t conference_file_stop(conference_obj_t *conference, file_stop_t stop);
|
uint32_t conference_file_stop(conference_obj_t *conference, file_stop_t stop);
|
||||||
switch_status_t conference_file_play(conference_obj_t *conference, char *file, uint32_t leadin, switch_channel_t *channel, uint8_t async);
|
switch_status_t conference_file_play(conference_obj_t *conference, char *file, uint32_t leadin, switch_channel_t *channel, uint8_t async);
|
||||||
void conference_member_send_all_dtmf(conference_member_t *member, conference_obj_t *conference, const char *dtmf);
|
void conference_member_send_all_dtmf(conference_member_t *member, conference_obj_t *conference, const char *dtmf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user