java代码走读,WebRTCDemo.apk代码走读(一):初始化
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代码走读(一):初始化相关推荐
- java 安装apk_Android 如何通过代码安装 APK?
2019-10-21 关键字:Java代码安装程序 在 APK 开发中,通过 Java 代码来打开系统的安装程序以安装 APK 并不是什么难事,一般的 Android 系统都有开放这一功能. 但随着 ...
- java lint_提高你的代码稳定性与可读性-lint工具
负责人:lingzideshensha 除了测试你的Android应用程序满足其功能需求,重要的是要确保你的代码没有结构性问题.代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很 ...
- 移动安全-APK代码混淆
概述 Android代码混淆是让Android项目避免轻易被逆向分析,防止代码安全泄露的手段之一.它将工程中的Android代码用简单抽象的字母或单词代替原有的代码名称.使代码丧失可读性从而使逆向工程 ...
- java中普通代码块,构造代码块,静态代码块的区别及代码示例
本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...
- 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 ...
- Java中普通代码块,构造代码块,静态代码块区别
Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...
- java字典写实例,基于JAVA的新华字典接口调用代码实例
基于JAVA的新华字典接口调用代码实例 接口描述:基于JA V A的新华字典接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...
- c java 开发android_java代码与纯C代码混编完成android应用的开发
在我们这个java与C语言的调用中,分为两个部分, 第一部分是java语言调用C语言的C库,也就是java调C; 第二部分是C语言调用java语言. 这里我主要讲解一下第一种java语言调用C库 这里 ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...
最新文章
- linux ssh -R 代理不同内网主机互连
- C++ memcpy和memmove实现
- PHPMailer 发送邮件
- html页面获取服务器时间,[html]定时获取服务器时间和本地时间
- Cryptocurrency Blockchain Internship Programme
- 使用CDS view开发SAP Marketing contact的facet追溯工具
- 电脑故障扫描修复软件_电脑故障分析:电脑安装软件提示没有权限的解决方法...
- js 加载图片无法加载成功,提示:net::ERR_BLOCKED_BY_CLIENT
- oracle建表语句string,编程式Mybatis获取oracle表创建表语句
- 使用js数组sort比较函数,实现按照对象的某个属性对数组进行排序
- ffmpeg(5):SDL相关学习
- 浅谈css常用伪类用法
- 一次性掌握计算机中常见的六类指令
- AutoIT测试实例
- meta html 自动跳转,meta标签http-equiv=“Refresh”纯html网页跳转用法详解
- 【专访】黄文强:电子商务创新航企营销模式
- 找个免费的天气预报API真难a
- android辅助功能手势,Android辅助功能——全局手势放大实现原理
- Chrome无头模式获取直播间弹幕
- 夜光 嘿哈~~情人节快乐(愿天下有情人终成眷属)
热门文章
- python中文开发环境_Python开发环境配置
- python归一化处理_详解python实现数据归一化处理的方式:(0,1)标准化
- write up:杂项 又一张图片,还单纯吗 --图片提取
- Jave之Scanner和不合法输入处理
- 阿里云AIoT全新工业和农业云端一体机深度产品,全链路数据化实现效率提升
- 函数计算助力高德地图平稳支撑亿级流量高峰
- 天刀手游制作人亲笔详解制作思路
- 经验分享:聊聊多人游戏同步那点事
- The world at your fingertips — 天涯明月刀幕后24(疏离)
- 高考完?入门级的开源项目带你开启编程之旅