new VoiceEngine/VoiceEngine_create

new VoiceEngineData

webrtc::VoiceEngine::Create

GetVoiceEngine

new VoiceEngineImpl

初始化SharedData

ProcessThread::CreateProcessThread

OutputMixer::Create

new OutputMixer

AudioConferenceMixer::Create

new AudioConferenceMixerImpl

AudioConferenceMixerImpl::Init

TransmitMixer::Create

new TransmitMixer

初始化VoEAudioProcessingImpl

初始化VoECodecImpl

初始化VoEDtmfImpl

初始化VoENetEqStatsImpl

初始化VoENetworkImpl

初始化VoERTP_RTCPImpl

初始化VoEVideoSyncImpl

初始化VoEVolumeControlImpl

初始化VoEBaseImpl

VoiceEngine_init

VoEBaseImpl::Init

WebRtcSpl_Init

ProcessThreadImpl::Start

AudioDeviceModuleImpl::Create

AudioDeviceModuleImpl::CreatePlatformSpecificObjects

new AudioDeviceTemplate

new AudioDeviceUtilityAndroid

SharedData::set_audio_device

ProcessThreadImpl::RegisterModule(AudioDeviceModuleImpl)

AudioDeviceModuleImpl::RegisterEventObserver

AudioDeviceModuleImpl::RegisterAudioCallback

AudioDeviceModuleImpl::init

AudioDeviceModuleImpl::SetPlayoutDevice

AudioDeviceModuleImpl::InitSpeaker

AudioDeviceModuleImpl::SetRecordingDevice

AudioDeviceModuleImpl::InitMicrophone

AudioDeviceModuleImpl::StereoPlayoutIsAvailable

AudioDeviceModuleImpl::SetStereoPlayout

AudioDeviceModuleImpl::SetStereoRecording

AudioProcessing::Create

new AudioProcessingImpl

new audioproc::Event

new EchoCancellationImpl

new EchoControlMobileImpl

new GainControlImpl

new HighPassFilterImpl

new LevelEstimatorImpl

new NoiseSuppressionImpl

new VoiceDetectionImpl

new GainControlForNewAgc

VoiceEngine_createChannel

VoEBaseImpl::CreateChannel

ChannelManager::CreateChannel

ChannelManager::CreateChannelInternal

Channel::CreateChannel

new Channel

VoEBaseImpl::InitializeChannel

Channel::SetEngineInformation

new VideoEngine

video_engine_jni.cc:VideoEngine_create

new VideoEngineData

vie(vie_imple.cc:webrtc::VideoEngine::Create())

new VideoEngineImpl

初始化ViEBaseImpl

new ViESharedData

初始化number_cores_(CpuInfo::DetectNumberOfCores()

channel_manager_(new ViEChannelManager(0, number_cores_, config)),

input_manager_(new ViEInputManager(0, config)),

render_manager_(new ViERenderManager(0)),

module_process_thread_(ProcessThread::CreateProcessThread()),

new ProcessThreadImpl

channel_manager_/input_manager_使用module_process_thread_

module_process_thread_启动

VideoEngine_init

ViEBaseImpl::Init

VideoEngine_setVoiceEngine

ViEBaseImpl::SetVoiceEngine

ViEChannelManager::SetVoiceEngine

ViEChannel::SetVoiceChannel

ViESyncModule::ConfigureSync

new StreamSynchronization

new ViESyncDelay

VideoEngine_createChannel

VideoEngineData::CreateChannel

ViEBaseImpl::CreateChannel

ViEChannelManager::CreateChannel

new ChannelGroup

new VieRemb

BitrateController::CreateBitrateController

BitrateControllerImpl::BitrateControllerImpl

new CallStats

new EncoderStateFeedback

new WrappingBitrateEstimator

将主要Module注册到ProcessThread

new ViEEncoder

vcm_(*webrtc::VideoCodingModule::Create())

new VideoCodingModuleImpl

sender_(new vcm::VideoSender(clock, &post_encode_callback_)),

new DebugRecorder(媒体写文件)

receiver_(new vcm::VideoReceiver(clock, event_factory))

vpm_(*webrtc::VideoProcessingModule::Create(channel_id))),

new VideoProcessingModuleImpl

RtpRtcp::CreateRtpRtcp

new ModuleRtpRtcpImpl

RTPSender初始化

new RTPSenderVideo

RTCPSender初始化

RTCPReceiver初始化

RTCPReceiver::RegisterRtcpObservers

new ViEBitrateObserver

new ViEPacedSenderCallback

BitrateControllerImpl::CreateRtcpBandwidthObserver

ViEEncoder::Init

VideoCodingModuleImpl::InitializeSender

VideoSender::InitializeSender

VCMCodecDataBase::ResetSender

VideoProcessingModuleImpl::EnableTemporalDecimation

VPMFramePreprocessor::EnableTemporalDecimation

VPMVideoDecimator::EnableTemporalDecimation

VideoProcessingModuleImpl::EnableContentAnalysis

VPMFramePreprocessor::EnableContentAnalysis

new QMVideoSettingsCallback

VideoCodingModule::Codec

VCMCodecDataBase::Codec

VideoCodingModuleImpl::RegisterSendCodec

VideoSender::RegisterSendCodec

VCMCodecDataBase::SetSendCodec

CreateEncoder

VP8Encoder::Create

new VP8EncoderImpl

new VCMGenericEncoder

VCMGenericEncoder::InitEncode

VP8EncoderImpl::InitEncode

VCMGenericEncoder::RegisterEncodeCallback

VP8EncoderImpl::RegisterEncodeCompleteCallback

VCMGenericEncoder::SetPeriodicKeyFrames

ViEChannelManager::CreateChannelObject

new ViEChannel

ViEChannel::Init

VideoEngine_connectAudioChannel

ViEBaseImpl::ConnectAudioChannel

ViEChannelManager::ConnectVoiceChannel

ViEChannel::SetVoiceChannel

ProcessThreadImpl::RegisterModule(VoEVideoSync)

ViESyncModule::ConfigureSync

new StreamSynchronization

java代码走读,WebRTCDemo.apk代码走读(一):初始化相关推荐

  1. java 安装apk_Android 如何通过代码安装 APK?

    2019-10-21 关键字:Java代码安装程序 在 APK 开发中,通过 Java 代码来打开系统的安装程序以安装 APK 并不是什么难事,一般的 Android 系统都有开放这一功能. 但随着 ...

  2. java lint_提高你的代码稳定性与可读性-lint工具

    负责人:lingzideshensha 除了测试你的Android应用程序满足其功能需求,重要的是要确保你的代码没有结构性问题.代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很 ...

  3. 移动安全-APK代码混淆

    概述 Android代码混淆是让Android项目避免轻易被逆向分析,防止代码安全泄露的手段之一.它将工程中的Android代码用简单抽象的字母或单词代替原有的代码名称.使代码丧失可读性从而使逆向工程 ...

  4. java中普通代码块,构造代码块,静态代码块的区别及代码示例

    本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...

  5. Java框架JSON-RPC项目demo代码实战 + JAVA WEB配置虚拟目录(转自21天java web开发)

    Java框架JSON-RPC项目demo代码实战 备注  JAVA WEB配置虚拟目录(转自21天java web开发) https://blog.csdn.net/wjxbj/article/det ...

  6. Java中普通代码块,构造代码块,静态代码块区别

    Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...

  7. java字典写实例,基于JAVA的新华字典接口调用代码实例

    基于JAVA的新华字典接口调用代码实例 接口描述:基于JA V A的新华字典接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...

  8. c java 开发android_java代码与纯C代码混编完成android应用的开发

    在我们这个java与C语言的调用中,分为两个部分, 第一部分是java语言调用C语言的C库,也就是java调C; 第二部分是C语言调用java语言. 这里我主要讲解一下第一种java语言调用C库 这里 ...

  9. 关于java中普通代码块、构造代码块与静态代码块

    1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...

最新文章

  1. linux ssh -R 代理不同内网主机互连
  2. C++ memcpy和memmove实现
  3. PHPMailer 发送邮件
  4. html页面获取服务器时间,[html]定时获取服务器时间和本地时间
  5. Cryptocurrency Blockchain Internship Programme
  6. 使用CDS view开发SAP Marketing contact的facet追溯工具
  7. 电脑故障扫描修复软件_电脑故障分析:电脑安装软件提示没有权限的解决方法...
  8. js 加载图片无法加载成功,提示:net::ERR_BLOCKED_BY_CLIENT
  9. oracle建表语句string,编程式Mybatis获取oracle表创建表语句
  10. 使用js数组sort比较函数,实现按照对象的某个属性对数组进行排序
  11. ffmpeg(5):SDL相关学习
  12. 浅谈css常用伪类用法
  13. 一次性掌握计算机中常见的六类指令
  14. AutoIT测试实例
  15. meta html 自动跳转,meta标签http-equiv=“Refresh”纯html网页跳转用法详解
  16. 【专访】黄文强:电子商务创新航企营销模式
  17. 找个免费的天气预报API真难a
  18. android辅助功能手势,Android辅助功能——全局手势放大实现原理
  19. Chrome无头模式获取直播间弹幕
  20. 夜光 嘿哈~~情人节快乐(愿天下有情人终成眷属)

热门文章

  1. python中文开发环境_Python开发环境配置
  2. python归一化处理_详解python实现数据归一化处理的方式:(0,1)标准化
  3. write up:杂项 又一张图片,还单纯吗 --图片提取
  4. Jave之Scanner和不合法输入处理
  5. 阿里云AIoT全新工业和农业云端一体机深度产品,全链路数据化实现效率提升
  6. 函数计算助力高德地图平稳支撑亿级流量高峰
  7. 天刀手游制作人亲笔详解制作思路
  8. 经验分享:聊聊多人游戏同步那点事
  9. The world at your fingertips — 天涯明月刀幕后24(疏离)
  10. 高考完?入门级的开源项目带你开启编程之旅