member由conference_function进入:

1、查找会议,

如果会议不存在,则

2、创建会议,

创建会议画布
      conference_video_parse_layouts:根据conference_layouts.conf 配置创建layouts,配置中的所有layout都加载,并存储在layout_hash中,最多8*8组
      canvases[]每一个canvas都有一个timer

如果是MUX,则【创建混屏线程】,在混屏线程中,video数据混屏后的数据丢入每个成员的mux_out_queue中,如果多cpu,则img刷新放到mux write线程,负责当前线程做。

3、启动【会议线程】:conference_launch_thread(conference)
    会议线程里做混音:从audio_buffer读取数据,通过switch_buffer_write将混音数据写入每个成员的omember->mux_buffer

4、如果是:MUX会议,则为每个成员创建用于混屏的video_queue,mux_out_queue对立。
5、将成员添加到会议室.
6、如果是:MUX会议,则
      启动【video write back 线程】conference_video_launch_muxing_write_thread ,从自己的mux_out_queue队列中获取video数据(混过屏后的),必要时刷新layer->img->canvas->img.

7、启动【video INPUT线程】:conference_video_thread_callback, 将passthrough模式的数据直接分发给其他成员。MUX模式下的video数据push到video_queue中。

8、启动【音频write back线程】conference_loop_output(&member); 将mux_buffer取出写回到member channel。
        并启动【input线程】:读取音频数据,到各自audio_buffer中; 数据会在conference会议线程中混音。

freeswitch/conference分析相关推荐

  1. Pjsip conference分析

    Pjsip的Conference会议桥,主要的功能是抽象media的输入输出为port,并把port中的PCM数据进行混音,已达到多方通话的混音功能. 对conference感兴趣的主要是两点: 怎么 ...

  2. freeswitch conference命令解释(mod_ conference)

    <conf name> count 人数 <conf name> list [delim <string>]|[count] <conf name> x ...

  3. 【Freeswitch从入门到精通】二、初识Freeswitch

    [Freeswitch从入门到精通]二.初识Freeswitch 1.入门术语 1.1 常见短语 1.2 Call Legs 2.历史 3.启动 4.dialplan 路由表 4.1 测试Demo路由 ...

  4. 【Freeswitch从入门到精通】四、IVR

    IVR 最初熟悉可能是移动,电信,联通三大运营商的手机电话,拨打10086等号码,客服端会提示你:按键1,查询本机花费,按键2,人工客服,按键0,重听一遍,请用#号键确认. 很简单,这就是一个IVR的 ...

  5. freeswitch呼叫流程分析

    今天翻文档时发现之前整理的关于freeswitch呼叫相关的内容,写成博文分享出来也方便我以后查阅. 整体结构图 FreeswitchCore 模块加载过程 freeswitch主程序初始化时会从mo ...

  6. ENode框架Conference案例分析系列之 - 订单处理减库存的设计

    前言 前面的文章,我介绍了Conference案例的业务.上下文划分.领域模型.架构,以及代码整体流程.接下来想针对案例中一些重要的场景,分别做进一步的分析.本文想先介绍一下Conference案例的 ...

  7. ENode框架Conference案例分析系列之 - 复杂情况的读库更新设计

    问题背景 Conference案例,是一个关于在线创建会议(类似QCon这种全球开发者大会).在线管理会议位置信息.在线预订某个会议的位置的,这样一个系统.具体可以看微软的这个项目的主页:http:/ ...

  8. 各类会议分析(Conference、workshop等,转载)

    会议分类的方式可说是不胜枚举,这点初步由英文对会议名称的写法,就可看出端倪,像是Assembly,Caucus,Colloquium, Colloquy,Commission,Committee,Co ...

  9. freeswitch之conference音频部分记录

    从member->session->channel 拿 audio数据,做重采样处理,switch_buffer_write 写入member->audio_buffer, 数据会在 ...

最新文章

  1. 十个同学想一起去周边城市两日游,分析方案的多/快/好等方面,并选择一种说明理由...
  2. Django--视图函数
  3. 让Python pip下载速度加速
  4. 手机浏览器访问本地html,如何经过Html网页调用本地安卓app?
  5. 03.进程和线程.md
  6. c语言二级考试真题新疆,新疆自治区计算机二级C语言考试题库.doc
  7. 【贪心】最大连续数列的和
  8. LFS-构建自己的linux
  9. 计算机网络————P2 标准化工作及相关组织
  10. JAVA大数据-Week2-DAY5
  11. jQuery load和unload函数使用
  12. 目标规划运筹学例题doc_7.运筹学之目标规划(胡运权版).doc
  13. html5网页制作代码 大学生网页制作作业代码 (旅游网站官网滚动模板)
  14. 大数据项目之深圳地铁大数据客流分析系统
  15. 连续剧网页服务器搭建,电影服务器的架设及其安全防范配置流媒体服务器 -电脑资料...
  16. 解决为什么电脑连接不上网络,应该如何查找问题
  17. OOM和StackOverFlow的区别
  18. 浅谈《网络数据安全标准体系建设指南》(征求意见稿)的意见(附全文)
  19. CreateJS 入门小记
  20. 《投资要义》书中的精髓:成功投资的要义在于低估值买入、分散化投资以及不深度研究个股。

热门文章

  1. VMware虚拟机无法同时开启多个
  2. pycharm连接服务器
  3. java中的 的意思_java中 的意思是什么意思是什么意思是什么意思
  4. K8S离线安装kubeadm报错:conntrack is needed by kubelet
  5. 如何评价模型的好坏?
  6. 计算机组装部件推荐,电脑组装的配件有哪些
  7. 基于事件驱动的编程模型(C++asio网络库相关)
  8. DA14585 官网例程 读取I2C加速度计并发送通知数据--I2C_Accel_Data_Notiifcation 分析
  9. cod文件在c语言,在Python Cod中运行“wc-lfilename”
  10. java http 中文乱码_关于java发送http请求时中文乱码的一种解决办法