22#include <api/peer_connection_interface.h>
29namespace webrtc_streaming {
37 webrtc::PeerConnectionObserver& observer,
38 const std::vector<webrtc::PeerConnectionInterface::IceServer>&
39 per_connection_servers) = 0;
68 rtc::scoped_refptr<webrtc::RtpTransceiverInterface> transceiver) = 0;
71 rtc::scoped_refptr<webrtc::RtpReceiverInterface> receiver) = 0;
74 rtc::scoped_refptr<webrtc::DataChannelInterface> data_channel) = 0;
85 const std::vector<webrtc::PeerConnectionInterface::IceServer>&
101 webrtc::PeerConnectionInterface::SignalingState new_state)
override;
103 rtc::scoped_refptr<webrtc::MediaStreamInterface> stream)
override;
105 rtc::scoped_refptr<webrtc::MediaStreamInterface> stream)
override;
107 rtc::scoped_refptr<webrtc::DataChannelInterface> data_channel)
override;
110 webrtc::PeerConnectionInterface::IceConnectionState new_state)
override;
112 webrtc::PeerConnectionInterface::PeerConnectionState new_state)
override;
114 webrtc::PeerConnectionInterface::IceGatheringState new_state)
override;
115 void OnIceCandidate(
const webrtc::IceCandidateInterface* candidate)
override;
117 const std::string& url,
int error_code,
118 const std::string& error_text)
override;
120 const std::vector<cricket::Candidate>& candidates)
override;
130 rtc::scoped_refptr<webrtc::RtpTransceiverInterface> transceiver)
override;
132 rtc::scoped_refptr<webrtc::RtpReceiverInterface> receiver)
override;
144 const std::vector<webrtc::PeerConnectionInterface::IceServer>&
147 std::unique_ptr<webrtc::SessionDescriptionInterface> offer);
149 std::unique_ptr<webrtc::SessionDescriptionInterface> answer);
151 std::unique_ptr<webrtc::IceCandidateInterface> ice_candidate);
156 rtc::scoped_refptr<webrtc::SetRemoteDescriptionObserverInterface>
170 std::vector<std::unique_ptr<webrtc::IceCandidateInterface>>
Definition: expected.h:86
Definition: connection_controller.h:59
virtual void OnTrack(rtc::scoped_refptr< webrtc::RtpTransceiverInterface > transceiver)=0
virtual void OnRemoveTrack(rtc::scoped_refptr< webrtc::RtpReceiverInterface > receiver)=0
virtual ~Observer()=default
virtual void OnConnectionStateChange(Result< webrtc::PeerConnectionInterface::PeerConnectionState > status)=0
virtual void OnDataChannel(rtc::scoped_refptr< webrtc::DataChannelInterface > data_channel)=0
Definition: connection_controller.h:47
Observer & observer_
Definition: connection_controller.h:167
rtc::scoped_refptr< webrtc::PeerConnectionInterface > peer_connection_
Definition: connection_controller.h:169
Result< void > OnCreateSDPSuccess(webrtc::SessionDescriptionInterface *desc)
Definition: connection_controller.cpp:190
void OnIceCandidate(const webrtc::IceCandidateInterface *candidate) override
Definition: connection_controller.cpp:394
void OnDataChannel(rtc::scoped_refptr< webrtc::DataChannelInterface > data_channel) override
Definition: connection_controller.cpp:318
Result< void > OnOfferMsg(std::unique_ptr< webrtc::SessionDescriptionInterface > offer)
Definition: connection_controller.cpp:150
void FailConnection(const std::string &message)
Definition: connection_controller.cpp:116
rtc::scoped_refptr< webrtc::SetRemoteDescriptionObserverInterface > ThisAsSetRemoteSDPObserver()
Definition: connection_controller.cpp:258
std::condition_variable status_cond_var_
Definition: connection_controller.h:175
void OnSignalingChange(webrtc::PeerConnectionInterface::SignalingState new_state) override
Definition: connection_controller.cpp:300
std::vector< std::unique_ptr< webrtc::IceCandidateInterface > > pending_ice_candidates_
Definition: connection_controller.h:171
Result< void > OnAnswerMsg(std::unique_ptr< webrtc::SessionDescriptionInterface > answer)
Definition: connection_controller.cpp:157
void OnSetLocalDescriptionSuccess()
Definition: connection_controller.cpp:213
void OnIceCandidatesRemoved(const std::vector< cricket::Candidate > &candidates) override
Definition: connection_controller.cpp:425
webrtc::CreateSessionDescriptionObserver * ThisAsCreateSDPObserver()
Definition: connection_controller.cpp:248
std::mutex status_mtx_
Definition: connection_controller.h:174
void AddPendingIceCandidates()
Definition: connection_controller.cpp:127
void OnIceCandidateError(const std::string &address, int port, const std::string &url, int error_code, const std::string &error_text) override
Definition: connection_controller.cpp:415
webrtc::SetSessionDescriptionObserver * ThisAsSetSDPObserver()
Definition: connection_controller.cpp:253
Result< void > HandleSignalingMessageInner(const Json::Value &message)
Definition: connection_controller.cpp:272
void OnIceGatheringChange(webrtc::PeerConnectionInterface::IceGatheringState new_state) override
Definition: connection_controller.cpp:372
void OnTrack(rtc::scoped_refptr< webrtc::RtpTransceiverInterface > transceiver) override
Definition: connection_controller.cpp:438
void OnStandardizedIceConnectionChange(webrtc::PeerConnectionInterface::IceConnectionState new_state) override
Definition: connection_controller.cpp:333
Result< void > RequestOffer(const std::vector< webrtc::PeerConnectionInterface::IceServer > &ice_servers)
Definition: connection_controller.cpp:100
PeerSignalingHandler & sig_handler_
Definition: connection_controller.h:165
Result< void > OnIceCandidateMsg(std::unique_ptr< webrtc::IceCandidateInterface > ice_candidate)
Definition: connection_controller.cpp:164
Result< webrtc::PeerConnectionInterface::PeerConnectionState > connection_status_
Definition: connection_controller.h:177
void OnSetLocalDescriptionFailure(const webrtc::RTCError &error)
Definition: connection_controller.cpp:217
void HandleSignalingMessage(const Json::Value &msg)
Definition: connection_controller.cpp:264
void OnAddStream(rtc::scoped_refptr< webrtc::MediaStreamInterface > stream) override
Definition: connection_controller.cpp:306
void OnRemoveTrack(rtc::scoped_refptr< webrtc::RtpReceiverInterface > receiver) override
Definition: connection_controller.cpp:450
rtc::scoped_refptr< webrtc::PeerConnectionInterface > peer_connection()
Definition: connection_controller.h:95
PeerConnectionBuilder & connection_builder_
Definition: connection_controller.h:166
void OnRenegotiationNeeded() override
Definition: connection_controller.cpp:325
void OnSetRemoteDescriptionComplete(const webrtc::RTCError &error)
Definition: connection_controller.cpp:226
~ConnectionController() override=default
Result< void > OnOfferRequestMsg(const std::vector< webrtc::PeerConnectionInterface::IceServer > &ice_servers)
Definition: connection_controller.cpp:141
void OnConnectionChange(webrtc::PeerConnectionInterface::PeerConnectionState new_state) override
Definition: connection_controller.cpp:366
void OnRemoveStream(rtc::scoped_refptr< webrtc::MediaStreamInterface > stream) override
Definition: connection_controller.cpp:312
void OnCreateSDPFailure(const webrtc::RTCError &error)
Definition: connection_controller.cpp:208
ConnectionController(PeerSignalingHandler &sig_handler, PeerConnectionBuilder &connection_builder, Observer &observer)
Definition: connection_controller.cpp:86
Result< void > OnErrorMsg(const std::string &msg)
Definition: connection_controller.cpp:185
void CreateOffer()
Definition: connection_controller.cpp:94
Definition: connection_controller.h:33
virtual Result< rtc::scoped_refptr< webrtc::PeerConnectionInterface > > Build(webrtc::PeerConnectionObserver &observer, const std::vector< webrtc::PeerConnectionInterface::IceServer > &per_connection_servers)=0
virtual ~PeerConnectionBuilder()=default
Definition: peer_signaling_handler.h:29
#define error(format, args...)
Definition: fec_private.h:201
int status()
Definition: health.cpp:42
Definition: alloc_utils.cpp:23