6.1.2
CallActivity.java
CallActivity::createScreenCapturer
return new ScreenCapturerAndroid(
mediaProjectionPermissionResultData, new MediaProjection.Callback() {
@Override
public void onStop() {
reportError("User revoked permission to capture the screen.");
}
});
2. C++
Java_org_webrtc_PeerConnectionFactory_nativeCreatePeerConnection
3. C++
./sdk/android/src/jni/pc/peer_connection_factory.cc
JNI_PeerConnectionFactory_CreatePeerConnection
rtc::scoped_refptr<eerConnectionInterface> pc =
PeerConnectionFactoryFromJava(factory)->CreatePeerConnection(rtc_config,
std::move(peer_connection_dependencies));
bool VideoChannel::SetLocalContent_w(const MediaContentDescription* content,
SdpType type, std::string* error_desc)
if (!UpdateLocalStreams_w(video->streams(), type, error_desc)) {
SafeSetError("Failed to set local video description streams.", error_desc);
return false;
}
video_rtp_senders_.push_back(std::make_unique<RtpVideoSender>(
clock_, suspended_ssrcs, states, rtp_config, rtcp_report_interval_ms,
send_transport, observers,
// TODO(holmer): Remove this circular dependency by injecting
// the parts of RtpTransportControllerSendInterface that are really used.
this, event_log, &retransmission_rate_limiter_, std::move(fec_controller),
frame_encryption_config.frame_encryptor,
frame_encryption_config.crypto_options));
return video_rtp_senders_.back().get();