Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(846)

Unified Diff: webrtc/pc/channel.h

Issue 1888903003: Network thread (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/base/transportcontroller_unittest.cc ('k') | webrtc/pc/channel.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/pc/channel.h
diff --git a/webrtc/pc/channel.h b/webrtc/pc/channel.h
index 4518301d3b65e9e6fdf89586d258b519e42a4677..bbaad2a2368e1bf9a9a8ee415864aa657a3847f4 100644
--- a/webrtc/pc/channel.h
+++ b/webrtc/pc/channel.h
@@ -47,11 +47,6 @@ namespace cricket {
struct CryptoParams;
class MediaContentDescription;
-enum SinkType {
- SINK_PRE_CRYPTO, // Sink packets before encryption or after decryption.
- SINK_POST_CRYPTO // Sink packets after encryption or before decryption.
-};
-
// BaseChannel contains logic common to voice and video, including
// enable, marshaling calls to a worker thread, and
// connection and media monitors.
@@ -66,7 +61,8 @@ class BaseChannel
public MediaChannel::NetworkInterface,
public ConnectionStatsGetter {
public:
- BaseChannel(rtc::Thread* thread,
+ BaseChannel(rtc::Thread* worker_thread,
+ rtc::Thread* network_thread,
MediaChannel* channel,
TransportController* transport_controller,
const std::string& content_name,
@@ -78,6 +74,7 @@ class BaseChannel
void Deinit();
rtc::Thread* worker_thread() const { return worker_thread_; }
+ rtc::Thread* network_thread() const { return network_thread_; }
const std::string& content_name() const { return content_name_; }
const std::string& transport_name() const { return transport_name_; }
TransportChannel* transport_channel() const {
@@ -143,14 +140,14 @@ class BaseChannel
}
sigslot::signal2<BaseChannel*, bool> SignalDtlsSetupFailure;
- void SignalDtlsSetupFailure_w(bool rtcp);
+ void SignalDtlsSetupFailure_n(bool rtcp);
void SignalDtlsSetupFailure_s(bool rtcp);
// Used for latency measurements.
sigslot::signal1<BaseChannel*> SignalFirstPacketReceived;
// Made public for easier testing.
- void SetReadyToSend(bool rtcp, bool ready);
+ void SetReadyToSend_n(bool rtcp, bool ready);
// Only public for unit tests. Otherwise, consider protected.
int SetOption(SocketType type, rtc::Socket::Option o, int val)
@@ -158,14 +155,19 @@ class BaseChannel
SrtpFilter* srtp_filter() { return &srtp_filter_; }
+ bool SetRtpTransportParameters_n(const MediaContentDescription* content,
+ ContentAction action,
+ ContentSource src,
+ std::string* error_desc);
+
protected:
virtual MediaChannel* media_channel() const { return media_channel_; }
// Sets the |transport_channel_| (and |rtcp_transport_channel_|, if |rtcp_| is
// true). Gets the transport channels from |transport_controller_|.
- bool SetTransport_w(const std::string& transport_name);
+ bool SetTransport_n(const std::string& transport_name);
- void set_transport_channel(TransportChannel* transport);
- void set_rtcp_transport_channel(TransportChannel* transport,
+ void set_transport_channel(const std::string& transport_name);
+ void set_rtcp_transport_channel(const std::string* transport_name,
bool update_writablity);
bool was_ever_writable() const { return was_ever_writable_; }
@@ -217,15 +219,17 @@ class BaseChannel
bool SendPacket(bool rtcp,
rtc::CopyOnWriteBuffer* packet,
const rtc::PacketOptions& options);
+
virtual bool WantsPacket(bool rtcp, const rtc::CopyOnWriteBuffer* packet);
- void HandlePacket(bool rtcp, rtc::CopyOnWriteBuffer* packet,
+ void HandlePacket(bool rtcp,
+ rtc::CopyOnWriteBuffer* packet,
const rtc::PacketTime& packet_time);
void EnableMedia_w();
void DisableMedia_w();
- void UpdateWritableState_w();
- void ChannelWritable_w();
- void ChannelNotWritable_w();
+ void UpdateWritableState_n();
+ void ChannelWritable_n();
+ void ChannelNotWritable_n();
bool AddRecvStream_w(const StreamParams& sp);
bool RemoveRecvStream_w(uint32_t ssrc);
bool AddSendStream_w(const StreamParams& sp);
@@ -233,12 +237,13 @@ class BaseChannel
virtual bool ShouldSetupDtlsSrtp() const;
// Do the DTLS key expansion and impose it on the SRTP/SRTCP filters.
// |rtcp_channel| indicates whether to set up the RTP or RTCP filter.
- bool SetupDtlsSrtp(bool rtcp_channel);
- void MaybeSetupDtlsSrtp_w();
+ bool SetupDtlsSrtp_n(bool rtcp_channel);
+ void MaybeSetupDtlsSrtp_n();
// Set the DTLS-SRTP cipher policy on this channel as appropriate.
bool SetDtlsSrtpCryptoSuites(TransportChannel* tc, bool rtcp);
- virtual void ChangeState() = 0;
+ void ChangeState_n();
+ virtual void ChangeState_w() = 0;
// Gets the content info appropriate to the channel (audio or video).
virtual const ContentInfo* GetFirstContent(
@@ -255,10 +260,6 @@ class BaseChannel
virtual bool SetRemoteContent_w(const MediaContentDescription* content,
ContentAction action,
std::string* error_desc) = 0;
- bool SetRtpTransportParameters_w(const MediaContentDescription* content,
- ContentAction action,
- ContentSource src,
- std::string* error_desc);
// Helper method to get RTP Absoulute SendTime extension header id if
// present in remote supported extensions list.
@@ -268,12 +269,12 @@ class BaseChannel
bool CheckSrtpConfig(const std::vector<CryptoParams>& cryptos,
bool* dtls,
std::string* error_desc);
- bool SetSrtp_w(const std::vector<CryptoParams>& params,
+ bool SetSrtp_n(const std::vector<CryptoParams>& params,
ContentAction action,
ContentSource src,
std::string* error_desc);
- void ActivateRtcpMux_w();
- bool SetRtcpMux_w(bool enable,
+ void ActivateRtcpMux_n();
+ bool SetRtcpMux_n(bool enable,
ContentAction action,
ContentSource src,
std::string* error_desc);
@@ -292,9 +293,14 @@ class BaseChannel
bool InvokeOnWorker(const FunctorT& functor) {
return worker_thread_->Invoke<bool>(functor);
}
+ template <class FunctorT>
+ bool InvokeOnNetwork(const FunctorT& functor) {
+ return network_thread_->Invoke<bool>(functor);
+ }
private:
rtc::Thread* worker_thread_;
+ rtc::Thread* network_thread_;
TransportController* transport_controller_;
MediaChannel* media_channel_;
std::vector<StreamParams> local_streams_;
@@ -328,7 +334,8 @@ class BaseChannel
// and input/output level monitoring.
class VoiceChannel : public BaseChannel {
public:
- VoiceChannel(rtc::Thread* thread,
+ VoiceChannel(rtc::Thread* worker_thread,
+ rtc::Thread* network_thread,
MediaEngineInterface* media_engine,
VoiceMediaChannel* channel,
TransportController* transport_controller,
@@ -397,7 +404,7 @@ class VoiceChannel : public BaseChannel {
const char* data, size_t len,
const rtc::PacketTime& packet_time,
int flags);
- virtual void ChangeState();
+ void ChangeState_w() override;
virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc);
virtual bool SetLocalContent_w(const MediaContentDescription* content,
ContentAction action,
@@ -435,7 +442,8 @@ class VoiceChannel : public BaseChannel {
// VideoChannel is a specialization for video.
class VideoChannel : public BaseChannel {
public:
- VideoChannel(rtc::Thread* thread,
+ VideoChannel(rtc::Thread* worker_thread,
+ rtc::Thread* netwokr_thread,
VideoMediaChannel* channel,
TransportController* transport_controller,
const std::string& content_name,
@@ -469,7 +477,7 @@ class VideoChannel : public BaseChannel {
private:
// overrides from BaseChannel
- virtual void ChangeState();
+ void ChangeState_w() override;
virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc);
virtual bool SetLocalContent_w(const MediaContentDescription* content,
ContentAction action,
@@ -501,7 +509,8 @@ class VideoChannel : public BaseChannel {
// DataChannel is a specialization for data.
class DataChannel : public BaseChannel {
public:
- DataChannel(rtc::Thread* thread,
+ DataChannel(rtc::Thread* worker_thread,
+ rtc::Thread* network_thread,
DataMediaChannel* media_channel,
TransportController* transport_controller,
const std::string& content_name,
@@ -588,8 +597,8 @@ class DataChannel : public BaseChannel {
virtual bool SetRemoteContent_w(const MediaContentDescription* content,
ContentAction action,
std::string* error_desc);
- virtual void ChangeState();
- virtual bool WantsPacket(bool rtcp, const rtc::CopyOnWriteBuffer* packet);
+ void ChangeState_w() override;
+ bool WantsPacket(bool rtcp, const rtc::CopyOnWriteBuffer* packet) override;
virtual void OnMessage(rtc::Message* pmsg);
virtual void GetSrtpCryptoSuites(std::vector<int>* crypto_suites) const;
« no previous file with comments | « webrtc/p2p/base/transportcontroller_unittest.cc ('k') | webrtc/pc/channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698