Use new TransportController implementation in PeerConnection.
The TransportController will be replaced by the JsepTransportController and JsepTransport will be replace be JsepTransport2. The JsepTransportController will take the entire SessionDescription and handle the RtcpMux, Sdes and BUNDLE internally. The ownership model is also changed. The P2P layer transports are not ref-counted and will be owned by the JsepTransport2. In ORTC aspect, RtpTransportAdapter is now a wrapper over RtpTransport or SrtpTransport and it implements the public and internal interface by calling the transport underneath. Bug: webrtc:8587 Change-Id: Ia7fa61288a566f211f8560072ea0eecaf19e48df Reviewed-on: https://webrtc-review.googlesource.com/59586 Commit-Queue: Zhi Huang <zhihuang@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22693}
This commit is contained in:
@ -13,11 +13,12 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "api/ortc/rtptransportinterface.h"
|
||||
#include "api/ortc/srtptransportinterface.h"
|
||||
#include "api/umametrics.h"
|
||||
#include "p2p/base/icetransportinternal.h"
|
||||
#include "rtc_base/networkroute.h"
|
||||
#include "rtc_base/sigslot.h"
|
||||
#include "rtc_base/sslstreamadapter.h"
|
||||
|
||||
namespace rtc {
|
||||
class CopyOnWriteBuffer;
|
||||
@ -27,11 +28,11 @@ struct PacketTime;
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
// This represents the internal interface beneath RtpTransportInterface;
|
||||
// This represents the internal interface beneath SrtpTransportInterface;
|
||||
// it is not accessible to API consumers but is accessible to internal classes
|
||||
// in order to send and receive RTP and RTCP packets belonging to a single RTP
|
||||
// session. Additional convenience and configuration methods are also provided.
|
||||
class RtpTransportInternal : public RtpTransportInterface,
|
||||
class RtpTransportInternal : public SrtpTransportInterface,
|
||||
public sigslot::has_slots<> {
|
||||
public:
|
||||
virtual void SetRtcpMuxEnabled(bool enable) = 0;
|
||||
@ -47,6 +48,8 @@ class RtpTransportInternal : public RtpTransportInterface,
|
||||
virtual rtc::PacketTransportInternal* rtcp_packet_transport() const = 0;
|
||||
virtual void SetRtcpPacketTransport(rtc::PacketTransportInternal* rtcp) = 0;
|
||||
|
||||
virtual bool IsReadyToSend() const = 0;
|
||||
|
||||
// Called whenever a transport's ready-to-send state changes. The argument
|
||||
// is true if all used transports are ready to send. This is more specific
|
||||
// than just "writable"; it means the last send didn't return ENOTCONN.
|
||||
@ -80,9 +83,7 @@ class RtpTransportInternal : public RtpTransportInterface,
|
||||
const rtc::PacketOptions& options,
|
||||
int flags) = 0;
|
||||
|
||||
virtual bool HandlesPayloadType(int payload_type) const = 0;
|
||||
|
||||
virtual void AddHandledPayloadType(int payload_type) = 0;
|
||||
virtual bool IsSrtpActive() const = 0;
|
||||
|
||||
virtual void SetMetricsObserver(
|
||||
rtc::scoped_refptr<MetricsObserverInterface> metrics_observer) = 0;
|
||||
|
||||
Reference in New Issue
Block a user