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

Side by Side Diff: talk/session/media/channel.h

Issue 1453523002: Allow remote fingerprint update during a call (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 const std::string& transport_name() const { return transport_name_; } 93 const std::string& transport_name() const { return transport_name_; }
94 TransportChannel* transport_channel() const { 94 TransportChannel* transport_channel() const {
95 return transport_channel_; 95 return transport_channel_;
96 } 96 }
97 TransportChannel* rtcp_transport_channel() const { 97 TransportChannel* rtcp_transport_channel() const {
98 return rtcp_transport_channel_; 98 return rtcp_transport_channel_;
99 } 99 }
100 bool enabled() const { return enabled_; } 100 bool enabled() const { return enabled_; }
101 101
102 // This function returns true if we are using SRTP. 102 // This function returns true if we are using SRTP.
103 bool secure() const { return srtp_filter_.IsActive(); } 103 bool secure() const { return srtp_filter_->IsActive(); }
104 // The following function returns true if we are using 104 // The following function returns true if we are using
105 // DTLS-based keying. If you turned off SRTP later, however 105 // DTLS-based keying. If you turned off SRTP later, however
106 // you could have secure() == false and dtls_secure() == true. 106 // you could have secure() == false and dtls_secure() == true.
107 bool secure_dtls() const { return dtls_keyed_; } 107 bool secure_dtls() const { return dtls_keyed_; }
108 // This function returns true if we require secure channel for call setup. 108 // This function returns true if we require secure channel for call setup.
109 bool secure_required() const { return secure_required_; } 109 bool secure_required() const { return secure_required_; }
110 110
111 bool writable() const { return writable_; } 111 bool writable() const { return writable_; }
112 112
113 // Activate RTCP mux, regardless of the state so far. Once 113 // Activate RTCP mux, regardless of the state so far. Once
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 // Used for latency measurements. 160 // Used for latency measurements.
161 sigslot::signal1<BaseChannel*> SignalFirstPacketReceived; 161 sigslot::signal1<BaseChannel*> SignalFirstPacketReceived;
162 162
163 // Made public for easier testing. 163 // Made public for easier testing.
164 void SetReadyToSend(bool rtcp, bool ready); 164 void SetReadyToSend(bool rtcp, bool ready);
165 165
166 // Only public for unit tests. Otherwise, consider protected. 166 // Only public for unit tests. Otherwise, consider protected.
167 int SetOption(SocketType type, rtc::Socket::Option o, int val) 167 int SetOption(SocketType type, rtc::Socket::Option o, int val)
168 override; 168 override;
169 169
170 SrtpFilter* srtp_filter() { return &srtp_filter_; } 170 SrtpFilter* srtp_filter() { return srtp_filter_.get(); }
171 171
172 protected: 172 protected:
173 virtual MediaChannel* media_channel() const { return media_channel_; } 173 virtual MediaChannel* media_channel() const { return media_channel_; }
174 // Sets the |transport_channel_| (and |rtcp_transport_channel_|, if |rtcp_| is 174 // Sets the |transport_channel_| (and |rtcp_transport_channel_|, if |rtcp_| is
175 // true). Gets the transport channels from |transport_controller_|. 175 // true). Gets the transport channels from |transport_controller_|.
176 bool SetTransport_w(const std::string& transport_name); 176 bool SetTransport_w(const std::string& transport_name);
177 void set_transport_channel(TransportChannel* transport); 177 void set_transport_channel(TransportChannel* transport);
178 void set_rtcp_transport_channel(TransportChannel* transport); 178 void set_rtcp_transport_channel(TransportChannel* transport);
179 bool was_ever_writable() const { return was_ever_writable_; } 179 bool was_ever_writable() const { return was_ever_writable_; }
180 void set_local_content_direction(MediaContentDirection direction) { 180 void set_local_content_direction(MediaContentDirection direction) {
(...skipping 25 matching lines...) Expand all
206 206
207 // From TransportChannel 207 // From TransportChannel
208 void OnWritableState(TransportChannel* channel); 208 void OnWritableState(TransportChannel* channel);
209 virtual void OnChannelRead(TransportChannel* channel, 209 virtual void OnChannelRead(TransportChannel* channel,
210 const char* data, 210 const char* data,
211 size_t len, 211 size_t len,
212 const rtc::PacketTime& packet_time, 212 const rtc::PacketTime& packet_time,
213 int flags); 213 int flags);
214 void OnReadyToSend(TransportChannel* channel); 214 void OnReadyToSend(TransportChannel* channel);
215 215
216 void OnDtlsSrtpSetup(TransportChannel* channel);
217
216 bool PacketIsRtcp(const TransportChannel* channel, const char* data, 218 bool PacketIsRtcp(const TransportChannel* channel, const char* data,
217 size_t len); 219 size_t len);
218 bool SendPacket(bool rtcp, 220 bool SendPacket(bool rtcp,
219 rtc::Buffer* packet, 221 rtc::Buffer* packet,
220 const rtc::PacketOptions& options); 222 const rtc::PacketOptions& options);
221 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet); 223 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet);
222 void HandlePacket(bool rtcp, rtc::Buffer* packet, 224 void HandlePacket(bool rtcp, rtc::Buffer* packet,
223 const rtc::PacketTime& packet_time); 225 const rtc::PacketTime& packet_time);
224 226
225 void EnableMedia_w(); 227 void EnableMedia_w();
226 void DisableMedia_w(); 228 void DisableMedia_w();
227 void UpdateWritableState_w(); 229 void UpdateWritableState_w();
228 void ChannelWritable_w(); 230 void ChannelWritable_w();
229 void ChannelNotWritable_w(); 231 void ChannelNotWritable_w();
230 bool AddRecvStream_w(const StreamParams& sp); 232 bool AddRecvStream_w(const StreamParams& sp);
231 bool RemoveRecvStream_w(uint32_t ssrc); 233 bool RemoveRecvStream_w(uint32_t ssrc);
232 bool AddSendStream_w(const StreamParams& sp); 234 bool AddSendStream_w(const StreamParams& sp);
233 bool RemoveSendStream_w(uint32_t ssrc); 235 bool RemoveSendStream_w(uint32_t ssrc);
234 virtual bool ShouldSetupDtlsSrtp() const; 236 virtual bool ShouldSetupDtlsSrtp() const;
237 bool IsUsingDtlsSrtp() const;
235 // Do the DTLS key expansion and impose it on the SRTP/SRTCP filters. 238 // Do the DTLS key expansion and impose it on the SRTP/SRTCP filters.
236 // |rtcp_channel| indicates whether to set up the RTP or RTCP filter. 239 // |rtcp_channel| indicates whether to set up the RTP or RTCP filter.
237 bool SetupDtlsSrtp(bool rtcp_channel); 240 bool SetupDtlsSrtp(bool rtcp_channel);
238 // Set the DTLS-SRTP cipher policy on this channel as appropriate. 241 // Set the DTLS-SRTP cipher policy on this channel as appropriate.
239 bool SetDtlsSrtpCiphers(TransportChannel *tc, bool rtcp); 242 bool SetDtlsSrtpCiphers(TransportChannel *tc, bool rtcp);
240 243
241 virtual void ChangeState() = 0; 244 virtual void ChangeState() = 0;
242 245
243 // Gets the content info appropriate to the channel (audio or video). 246 // Gets the content info appropriate to the channel (audio or video).
244 virtual const ContentInfo* GetFirstContent( 247 virtual const ContentInfo* GetFirstContent(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 std::vector<StreamParams> local_streams_; 304 std::vector<StreamParams> local_streams_;
302 std::vector<StreamParams> remote_streams_; 305 std::vector<StreamParams> remote_streams_;
303 306
304 const std::string content_name_; 307 const std::string content_name_;
305 std::string transport_name_; 308 std::string transport_name_;
306 bool rtcp_transport_enabled_; 309 bool rtcp_transport_enabled_;
307 TransportChannel* transport_channel_; 310 TransportChannel* transport_channel_;
308 std::vector<std::pair<rtc::Socket::Option, int> > socket_options_; 311 std::vector<std::pair<rtc::Socket::Option, int> > socket_options_;
309 TransportChannel* rtcp_transport_channel_; 312 TransportChannel* rtcp_transport_channel_;
310 std::vector<std::pair<rtc::Socket::Option, int> > rtcp_socket_options_; 313 std::vector<std::pair<rtc::Socket::Option, int> > rtcp_socket_options_;
311 SrtpFilter srtp_filter_; 314 rtc::scoped_ptr<SrtpFilter> srtp_filter_;
312 RtcpMuxFilter rtcp_mux_filter_; 315 RtcpMuxFilter rtcp_mux_filter_;
313 BundleFilter bundle_filter_; 316 BundleFilter bundle_filter_;
314 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_; 317 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_;
315 bool enabled_; 318 bool enabled_;
316 bool writable_; 319 bool writable_;
317 bool rtp_ready_to_send_; 320 bool rtp_ready_to_send_;
318 bool rtcp_ready_to_send_; 321 bool rtcp_ready_to_send_;
319 bool was_ever_writable_; 322 bool was_ever_writable_;
320 MediaContentDirection local_content_direction_; 323 MediaContentDirection local_content_direction_;
321 MediaContentDirection remote_content_direction_; 324 MediaContentDirection remote_content_direction_;
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 // SetSendParameters. 639 // SetSendParameters.
637 DataSendParameters last_send_params_; 640 DataSendParameters last_send_params_;
638 // Last DataRecvParameters sent down to the media_channel() via 641 // Last DataRecvParameters sent down to the media_channel() via
639 // SetRecvParameters. 642 // SetRecvParameters.
640 DataRecvParameters last_recv_params_; 643 DataRecvParameters last_recv_params_;
641 }; 644 };
642 645
643 } // namespace cricket 646 } // namespace cricket
644 647
645 #endif // TALK_SESSION_MEDIA_CHANNEL_H_ 648 #endif // TALK_SESSION_MEDIA_CHANNEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698