WebRTCDemo.apk代码走读(二):发送Call

转载注明出处

VoiceEngine_startListenVoEBaseImpl::StartReceivechannelPtr->StartReceiving设置channel的receiving的状态VoiceEngine_startPlayoutVoEBaseImpl::StartPlayoutVoEBaseImpl::StartPlayout–没有channelId,涉及到硬件,所以是唯一全局的AudioDeviceModuleImpl::InitPlayoutAudioDeviceTemplate::InitPlayoutOpenSlesOutput::InitPlayout,设置状态AudioDeviceModuleImpl::StartPlayoutAudioDeviceTemplate::StartPlayoutOpenSlesOutput::StartPlayout,创建硬件资源Channel::StartPlayoutOutputMixer::SetMixabilityStatusAudioConferenceMixerImpl::SetMixabilityStatusAudioConferenceMixerImpl::AddParticipantToList加入到混音器中VoiceEngine_startSendVoEBaseImpl::StartSendVoEBaseImpl::StartSend() –没有channelId,涉及到硬件,所以是唯一全局的AudioDeviceModuleImpl::StartRecordingAudioDeviceTemplate::StartRecordingOpenSlesInput::StartRecording,创建硬件资源AudioDeviceModuleImpl::InitRecordingAudioDeviceTemplate::InitRecordingOpenSlesInput::InitRecording,配置状态Channel::StartSend,设置状态VideoEngine_addRendererViERenderImpl::AddRendererViERenderManager::AddRenderStreamVideoRender::CreateVideoRender, VideoRender和上层的window一一对应new ModuleVideoRenderImplnew AndroidNativeOpenGl2RendererAndroidNativeOpenGl2Renderer::Init,和JNI环境关联起来加入到render_list,??可以有多个Render吗?ViERenderer::CreateViERenderernew ViERenderernew ViEExternalRendererImpl,用于回调new VideoFrameViERenderer::InitModuleVideoRenderImpl::AddIncomingRenderStreamVideoRenderAndroid::AddIncomingRenderStreamAndroidNativeOpenGl2Renderer::CreateAndroidRenderChannelnew AndroidNativeOpenGl2ChannelAndroidNativeOpenGl2Channel::Init,和JINI环境关联起来注册两个Native函数,AndroidNativeOpenGl2Channel::DrawNativeStatic,,AndroidNativeOpenGl2Channel::CreateOpenGLNativeStaticstreamId和AndroidStream(AndroidNativeOpenGl2Channel)一一对应,可以保存多个new IncomingVideoStreamnew VideoRenderFramesIncomingVideoStream::SetRenderCallback初始化回调函数(AndroidNativeOpenGl2Channel)IncomingVideoStream加入map中??可以有多个?VideoEngine_startRenderViERenderer::StartRenderModuleVideoRenderImpl::StartRenderIncomingVideoStream::StartThreadWrapper::CreateThread,回调是IncomingVideoStream::IncomingVideoStreamProcessThread启动EventPosix::StartTimerVideoRenderAndroid::StartRenderThreadWrapper::CreateThread,回调是VideoRenderAndroid::JavaRenderThreadProcess启动线程VideoEngine_startReceiveViEBaseImpl::StartReceiveViEChannel::StartReceiveViEReceiver::StartReceive,设置状态VideoEngine_getCaptureDeviceViECaptureImpl::GetCaptureDeviceViEInputManager::GetDeviceNameVideoCaptureFactory::CreateDeviceInfonew videocapturemodule::DeviceInfoAndroidDeviceInfoAndroid::GetDeviceNameVideoEngine_allocateCaptureDeviceViECaptureImpl::AllocateCaptureDeviceViEInputManager::CreateCaptureDeviceViECapturer::CreateViECapturenew ViECapturerThreadWrapper::CreateThread,回调函数ViECapturer::ViECaptureProcessnew OveruseFrameDetectorViECapturer::InitVideoCaptureFactory::CreateVideoCaptureImpl::Createnew videocapturemodule::VideoCaptureAndroidVideoCaptureAndroid::RegisterCaptureDataCallback注册回调函数ViECapturer在线程中注册Module,videocapturemodule::VideoCaptureAndroid保存ID,可以有多个ViECapturerVideoEngine_connectCaptureDeviceViECaptureImpl::ConnectCaptureDevice,链接摄像头和channleViEFrameProviderBase::RegisterFrameCallback,可以有多个callbackViECapturer::FrameCallbackChanged,将ViEEncoder作为回调类放到VieCapturer的回调list中VideoCaptureAndroid::CaptureSettingsVideoCaptureAndroid::StopCaptureVideoCaptureAndroid::StartCapture,配置JNI环境,获取摄像头参数 VideoEngine_startCaptureViECaptureImpl::StartCaptureViECapturer::StartViEFrameProviderBase::GetBestFormat获取最好的尺寸ViEEncoder::GetPreferedFrameSettingsVideoCaptureAndroid::StartCapture,配置JNI环境,获取摄像头参数VideoEngine_startSendViEBaseImpl::StartSendViEEncoder::Pause,设置状态ViEChannel::StartSendModuleRtpRtcpImpl::SetSendingMediaStatusRTPSender::SetSendingMediaStatus设置状态为trueModuleRtpRtcpImpl::SetSendingStatusRTPSender::SetSendingStatus,初始化状态和RTP头还能有多个ModuleRtpRtcpImpl???ViEEncoder::SendKeyFrameVideoCodingModuleImpl::IntraFrameRequestVideoSender::IntraFrameRequestVCMGenericEncoder::RequestFrameVP8EncoderImpl::Encode

真凉爽啊!青山绿水映入我的眼中,景色怡人啊!

WebRTCDemo.apk代码走读(二):发送Call

相关文章:

你感兴趣的文章:

标签云: