| Index: talk/app/webrtc/webrtcsession.h
|
| diff --git a/talk/app/webrtc/webrtcsession.h b/talk/app/webrtc/webrtcsession.h
|
| index 30ebc1e49ee8dcc07e015e20f784f87d84af725e..b292a5c7c6811167d9dbc3b67f97ba9501ea8630 100644
|
| --- a/talk/app/webrtc/webrtcsession.h
|
| +++ b/talk/app/webrtc/webrtcsession.h
|
| @@ -29,6 +29,7 @@
|
| #define TALK_APP_WEBRTC_WEBRTCSESSION_H_
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "talk/app/webrtc/datachannel.h"
|
| #include "talk/app/webrtc/dtmfsender.h"
|
| @@ -47,7 +48,6 @@ class BaseChannel;
|
| class ChannelManager;
|
| class DataChannel;
|
| class StatsReport;
|
| -class Transport;
|
| class VideoCapturer;
|
| class VideoChannel;
|
| class VoiceChannel;
|
| @@ -75,6 +75,8 @@ extern const char kSessionError[];
|
| extern const char kSessionErrorDesc[];
|
| extern const char kDtlsSetupFailureRtp[];
|
| extern const char kDtlsSetupFailureRtcp[];
|
| +extern const char kEnableBundleFailed[];
|
| +
|
| // Maximum number of received video streams that will be processed by webrtc
|
| // even if they are not signalled beforehand.
|
| extern const int kMaxUnsignalledRecvStreams;
|
| @@ -234,6 +236,18 @@ class WebRtcSession : public cricket::BaseSession,
|
| // This avoids exposing the internal structures used to track them.
|
| virtual bool GetTransportStats(cricket::SessionStats* stats);
|
|
|
| + // Get stats for a specific channel
|
| + bool GetChannelTransportStats(cricket::BaseChannel* ch,
|
| + cricket::SessionStats* stats);
|
| +
|
| + // Caller owns returned identity
|
| + virtual bool GetIdentity(const std::string& content_name,
|
| + rtc::SSLIdentity** identity);
|
| +
|
| + // Caller owns returned certificate
|
| + virtual bool GetRemoteCertificate(const std::string& content_name,
|
| + rtc::SSLCertificate** cert);
|
| +
|
| // Implements DataChannelFactory.
|
| rtc::scoped_refptr<DataChannel> CreateDataChannel(
|
| const std::string& label,
|
| @@ -267,9 +281,6 @@ class WebRtcSession : public cricket::BaseSession,
|
| kAnswer,
|
| };
|
|
|
| - // Invokes ConnectChannels() on transport proxies, which initiates ice
|
| - // candidates allocation.
|
| - bool StartCandidatesAllocation();
|
| bool UpdateSessionState(Action action, cricket::ContentSource source,
|
| std::string* err_desc);
|
| static Action GetAction(const std::string& type);
|
| @@ -279,25 +290,13 @@ class WebRtcSession : public cricket::BaseSession,
|
| cricket::ContentSource source,
|
| std::string* error_desc);
|
|
|
| -
|
| - // Transport related callbacks, override from cricket::BaseSession.
|
| - virtual void OnTransportRequestSignaling(cricket::Transport* transport);
|
| - virtual void OnTransportConnecting(cricket::Transport* transport);
|
| - virtual void OnTransportWritable(cricket::Transport* transport);
|
| - virtual void OnTransportCompleted(cricket::Transport* transport);
|
| - virtual void OnTransportFailed(cricket::Transport* transport);
|
| - virtual void OnTransportProxyCandidatesReady(
|
| - cricket::TransportProxy* proxy,
|
| - const cricket::Candidates& candidates);
|
| - virtual void OnCandidatesAllocationDone();
|
| - void OnTransportReceiving(cricket::Transport* transport) override;
|
| + cricket::BaseChannel* GetChannel(const std::string& content_name);
|
| + // Cause all the BaseChannels in the bundle group to have the same
|
| + // transport channel.
|
| + bool EnableBundle(const cricket::ContentGroup& bundle);
|
|
|
| // Enables media channels to allow sending of media.
|
| void EnableChannels();
|
| - // Creates a JsepIceCandidate and adds it to the local session description
|
| - // and notify observers. Called when a new local candidate have been found.
|
| - void ProcessNewLocalCandidate(const std::string& content_name,
|
| - const cricket::Candidates& candidates);
|
| // Returns the media index for a local ice candidate given the content name.
|
| // Returns false if the local session description does not have a media
|
| // content called |content_name|.
|
| @@ -310,8 +309,7 @@ class WebRtcSession : public cricket::BaseSession,
|
| bool UseCandidate(const IceCandidateInterface* candidate);
|
| // Deletes the corresponding channel of contents that don't exist in |desc|.
|
| // |desc| can be null. This means that all channels are deleted.
|
| - void RemoveUnusedChannelsAndTransports(
|
| - const cricket::SessionDescription* desc);
|
| + void RemoveUnusedChannels(const cricket::SessionDescription* desc);
|
|
|
| // Allocates media channels based on the |desc|. If |desc| doesn't have
|
| // the BUNDLE option, this method will disable BUNDLE in PortAllocator.
|
| @@ -360,9 +358,16 @@ class WebRtcSession : public cricket::BaseSession,
|
| const SessionDescriptionInterface* remote_desc,
|
| bool* valid);
|
|
|
| + void OnTransportControllerConnectionState(cricket::IceConnectionState state);
|
| + void OnTransportControllerReceiving(bool receiving);
|
| + void OnTransportControllerGatheringState(cricket::IceGatheringState state);
|
| + void OnTransportControllerCandidatesGathered(
|
| + const std::string& transport_name,
|
| + const cricket::Candidates& candidates);
|
| +
|
| std::string GetSessionErrorMsg();
|
|
|
| - // Invoked when OnTransportCompleted is signaled to gather the usage
|
| + // Invoked when TransportController completion is signaled to gather the usage
|
| // of IPv4/IPv6 as best connection.
|
| void ReportBestConnectionState(const cricket::TransportStats& stats);
|
|
|
|
|