admin管理员组

文章数量:1664349

从member->session->channel 拿 audio数据,做重采样处理,switch_buffer_write 写入member->audio_buffer, 数据会在conference当前会议线程来mux。
会议线程里做混音:从audio_buffer读取数据,通过switch_buffer_write将混音数据写入每个成员的omember->mux_buffer
混音后的数据在从member/mux_buffer取出,switch_core_session_write_frame 写回到member channel。

音频处理过程:

音频获取和重采样-》混音音频输入-》混音-》混音输出-》写入到member

整个过程中比较重要的三个buffer:
在函数conference_member_setup_media中分配的内存:
=>switch_buffer_create_dynamic(&member->resample_buffer //重采样buffer
=>switch_buffer_create_dynamic(&member->audio_buffer //输入buffer
=>switch_buffer_create_dynamic(&member->mux_buffer //输出buffer

1.音频获取和重采样:

输出线程中启动【input线程】:conference_loop_launch_input(member, switch_core_session_get_pool(member->session));
conference_loop_input是一个线程,conference_loop_outpu

本文标签: 音频freeswitchConference