| Index: webrtc/pc/channel.h
|
| diff --git a/webrtc/pc/channel.h b/webrtc/pc/channel.h
|
| index c7749a97156e2165a18a22d8217d199b28d580b9..e5180ca26f6cb3cad13406be27a7b22f1fa3eb61 100644
|
| --- a/webrtc/pc/channel.h
|
| +++ b/webrtc/pc/channel.h
|
| @@ -83,7 +83,7 @@
|
| rtc::Thread* signaling_thread,
|
| MediaChannel* channel,
|
| const std::string& content_name,
|
| - bool rtcp_mux_required,
|
| + bool rtcp,
|
| bool srtp_required);
|
| virtual ~BaseChannel();
|
| bool Init_w(TransportChannel* rtp_transport,
|
| @@ -107,6 +107,11 @@
|
|
|
| bool writable() const { return writable_; }
|
|
|
| + // Activate RTCP mux, regardless of the state so far. Once
|
| + // activated, it can not be deactivated, and if the remote
|
| + // description doesn't support RTCP mux, setting the remote
|
| + // description will fail.
|
| + void ActivateRtcpMux();
|
| bool SetTransport(TransportChannel* rtp_transport,
|
| TransportChannel* rtcp_transport);
|
| bool PushdownLocalDescription(const SessionDescription* local_desc,
|
| @@ -156,10 +161,9 @@
|
| // Forward TransportChannel SignalSentPacket to worker thread.
|
| sigslot::signal1<const rtc::SentPacket&> SignalSentPacket;
|
|
|
| - // Emitted whenever rtcp-mux is fully negotiated and the rtcp-transport can
|
| - // be destroyed.
|
| - // Fired on the network thread.
|
| - sigslot::signal1<const std::string&> SignalRtcpMuxFullyActive;
|
| + // Emitted whenever the rtcp-mux is active and the rtcp-transport can be
|
| + // destroyed.
|
| + sigslot::signal1<const std::string&> SignalDestroyRtcpTransport;
|
|
|
| TransportChannel* rtp_transport() const { return rtp_transport_; }
|
| TransportChannel* rtcp_transport() const { return rtcp_transport_; }
|
| @@ -331,6 +335,7 @@
|
| ContentAction action,
|
| ContentSource src,
|
| std::string* error_desc);
|
| + void ActivateRtcpMux_n();
|
| bool SetRtcpMux_n(bool enable,
|
| ContentAction action,
|
| ContentSource src,
|
| @@ -377,9 +382,10 @@
|
| std::unique_ptr<ConnectionMonitor> connection_monitor_;
|
|
|
| std::string transport_name_;
|
| - // True if RTCP-multiplexing is required. In other words, no standalone RTCP
|
| - // transport will ever be used for this channel.
|
| - const bool rtcp_mux_required_;
|
| + // Is RTCP used at all by this type of channel?
|
| + // Expected to be true (as of typing this) for everything except data
|
| + // channels.
|
| + const bool rtcp_enabled_;
|
| // TODO(johan): Replace TransportChannel* with rtc::PacketTransportInterface*.
|
| TransportChannel* rtp_transport_ = nullptr;
|
| std::vector<std::pair<rtc::Socket::Option, int> > socket_options_;
|
| @@ -422,7 +428,7 @@
|
| MediaEngineInterface* media_engine,
|
| VoiceMediaChannel* channel,
|
| const std::string& content_name,
|
| - bool rtcp_mux_required,
|
| + bool rtcp,
|
| bool srtp_required);
|
| ~VoiceChannel();
|
| bool Init_w(TransportChannel* rtp_transport,
|
| @@ -541,7 +547,7 @@
|
| rtc::Thread* signaling_thread,
|
| VideoMediaChannel* channel,
|
| const std::string& content_name,
|
| - bool rtcp_mux_required,
|
| + bool rtcp,
|
| bool srtp_required);
|
| ~VideoChannel();
|
| bool Init_w(TransportChannel* rtp_transport,
|
| @@ -621,7 +627,7 @@
|
| rtc::Thread* signaling_thread,
|
| DataMediaChannel* channel,
|
| const std::string& content_name,
|
| - bool rtcp_mux_required,
|
| + bool rtcp,
|
| bool srtp_required);
|
| ~RtpDataChannel();
|
| bool Init_w(TransportChannel* rtp_transport,
|
|
|