Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 151 | 151 |
| 152 // Made public for easier testing. | 152 // Made public for easier testing. |
| 153 void SetReadyToSend(bool rtcp, bool ready); | 153 void SetReadyToSend(bool rtcp, bool ready); |
| 154 | 154 |
| 155 // Only public for unit tests. Otherwise, consider protected. | 155 // Only public for unit tests. Otherwise, consider protected. |
| 156 int SetOption(SocketType type, rtc::Socket::Option o, int val) | 156 int SetOption(SocketType type, rtc::Socket::Option o, int val) |
| 157 override; | 157 override; |
| 158 | 158 |
| 159 SrtpFilter* srtp_filter() { return &srtp_filter_; } | 159 SrtpFilter* srtp_filter() { return &srtp_filter_; } |
| 160 | 160 |
| 161 bool SetCryptoOptions(const rtc::CryptoOptions& crypto_options); | |
| 162 | |
| 161 protected: | 163 protected: |
| 162 virtual MediaChannel* media_channel() const { return media_channel_; } | 164 virtual MediaChannel* media_channel() const { return media_channel_; } |
| 163 // Sets the |transport_channel_| (and |rtcp_transport_channel_|, if |rtcp_| is | 165 // Sets the |transport_channel_| (and |rtcp_transport_channel_|, if |rtcp_| is |
| 164 // true). Gets the transport channels from |transport_controller_|. | 166 // true). Gets the transport channels from |transport_controller_|. |
| 165 bool SetTransport_w(const std::string& transport_name); | 167 bool SetTransport_w(const std::string& transport_name); |
| 166 | 168 |
| 167 void set_transport_channel(TransportChannel* transport); | 169 void set_transport_channel(TransportChannel* transport); |
| 168 void set_rtcp_transport_channel(TransportChannel* transport, | 170 void set_rtcp_transport_channel(TransportChannel* transport, |
| 169 bool update_writablity); | 171 bool update_writablity); |
| 170 | 172 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 276 bool SetRtcpMux_w(bool enable, | 278 bool SetRtcpMux_w(bool enable, |
| 277 ContentAction action, | 279 ContentAction action, |
| 278 ContentSource src, | 280 ContentSource src, |
| 279 std::string* error_desc); | 281 std::string* error_desc); |
| 280 | 282 |
| 281 // From MessageHandler | 283 // From MessageHandler |
| 282 void OnMessage(rtc::Message* pmsg) override; | 284 void OnMessage(rtc::Message* pmsg) override; |
| 283 | 285 |
| 284 // Handled in derived classes | 286 // Handled in derived classes |
| 285 // Get the SRTP crypto suites to use for RTP media | 287 // Get the SRTP crypto suites to use for RTP media |
| 286 virtual void GetSrtpCryptoSuites(std::vector<int>* crypto_suites) const = 0; | 288 virtual void GetSrtpCryptoSuites(const rtc::CryptoOptions& crypto_options, |
| 289 std::vector<int>* crypto_suites) const = 0; | |
| 287 virtual void OnConnectionMonitorUpdate(ConnectionMonitor* monitor, | 290 virtual void OnConnectionMonitorUpdate(ConnectionMonitor* monitor, |
| 288 const std::vector<ConnectionInfo>& infos) = 0; | 291 const std::vector<ConnectionInfo>& infos) = 0; |
| 289 | 292 |
| 290 // Helper function for invoking bool-returning methods on the worker thread. | 293 // Helper function for invoking bool-returning methods on the worker thread. |
| 291 template <class FunctorT> | 294 template <class FunctorT> |
| 292 bool InvokeOnWorker(const FunctorT& functor) { | 295 bool InvokeOnWorker(const FunctorT& functor) { |
| 293 return worker_thread_->Invoke<bool>(functor); | 296 return worker_thread_->Invoke<bool>(functor); |
| 294 } | 297 } |
| 295 | 298 |
| 296 private: | 299 private: |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 314 bool enabled_; | 317 bool enabled_; |
| 315 bool writable_; | 318 bool writable_; |
| 316 bool rtp_ready_to_send_; | 319 bool rtp_ready_to_send_; |
| 317 bool rtcp_ready_to_send_; | 320 bool rtcp_ready_to_send_; |
| 318 bool was_ever_writable_; | 321 bool was_ever_writable_; |
| 319 MediaContentDirection local_content_direction_; | 322 MediaContentDirection local_content_direction_; |
| 320 MediaContentDirection remote_content_direction_; | 323 MediaContentDirection remote_content_direction_; |
| 321 bool has_received_packet_; | 324 bool has_received_packet_; |
| 322 bool dtls_keyed_; | 325 bool dtls_keyed_; |
| 323 bool secure_required_; | 326 bool secure_required_; |
| 327 rtc::CryptoOptions crypto_options_; | |
|
mattdr
2016/05/06 22:34:13
Should we make this available as a public or prote
joachim
2016/05/09 23:21:40
Done.
| |
| 324 int rtp_abs_sendtime_extn_id_; | 328 int rtp_abs_sendtime_extn_id_; |
| 325 }; | 329 }; |
| 326 | 330 |
| 327 // VoiceChannel is a specialization that adds support for early media, DTMF, | 331 // VoiceChannel is a specialization that adds support for early media, DTMF, |
| 328 // and input/output level monitoring. | 332 // and input/output level monitoring. |
| 329 class VoiceChannel : public BaseChannel { | 333 class VoiceChannel : public BaseChannel { |
| 330 public: | 334 public: |
| 331 VoiceChannel(rtc::Thread* thread, | 335 VoiceChannel(rtc::Thread* thread, |
| 332 MediaEngineInterface* media_engine, | 336 MediaEngineInterface* media_engine, |
| 333 VoiceMediaChannel* channel, | 337 VoiceMediaChannel* channel, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 404 std::string* error_desc); | 408 std::string* error_desc); |
| 405 virtual bool SetRemoteContent_w(const MediaContentDescription* content, | 409 virtual bool SetRemoteContent_w(const MediaContentDescription* content, |
| 406 ContentAction action, | 410 ContentAction action, |
| 407 std::string* error_desc); | 411 std::string* error_desc); |
| 408 void HandleEarlyMediaTimeout(); | 412 void HandleEarlyMediaTimeout(); |
| 409 bool InsertDtmf_w(uint32_t ssrc, int event, int duration); | 413 bool InsertDtmf_w(uint32_t ssrc, int event, int duration); |
| 410 bool SetOutputVolume_w(uint32_t ssrc, double volume); | 414 bool SetOutputVolume_w(uint32_t ssrc, double volume); |
| 411 bool GetStats_w(VoiceMediaInfo* stats); | 415 bool GetStats_w(VoiceMediaInfo* stats); |
| 412 | 416 |
| 413 virtual void OnMessage(rtc::Message* pmsg); | 417 virtual void OnMessage(rtc::Message* pmsg); |
| 414 virtual void GetSrtpCryptoSuites(std::vector<int>* crypto_suites) const; | 418 void GetSrtpCryptoSuites(const rtc::CryptoOptions& crypto_options, |
| 419 std::vector<int>* crypto_suites) const override; | |
| 415 virtual void OnConnectionMonitorUpdate( | 420 virtual void OnConnectionMonitorUpdate( |
| 416 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); | 421 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); |
| 417 virtual void OnMediaMonitorUpdate( | 422 virtual void OnMediaMonitorUpdate( |
| 418 VoiceMediaChannel* media_channel, const VoiceMediaInfo& info); | 423 VoiceMediaChannel* media_channel, const VoiceMediaInfo& info); |
| 419 void OnAudioMonitorUpdate(AudioMonitor* monitor, const AudioInfo& info); | 424 void OnAudioMonitorUpdate(AudioMonitor* monitor, const AudioInfo& info); |
| 420 | 425 |
| 421 static const int kEarlyMediaTimeout = 1000; | 426 static const int kEarlyMediaTimeout = 1000; |
| 422 MediaEngineInterface* media_engine_; | 427 MediaEngineInterface* media_engine_; |
| 423 bool received_media_; | 428 bool received_media_; |
| 424 std::unique_ptr<VoiceMediaMonitor> media_monitor_; | 429 std::unique_ptr<VoiceMediaMonitor> media_monitor_; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 475 ContentAction action, | 480 ContentAction action, |
| 476 std::string* error_desc); | 481 std::string* error_desc); |
| 477 virtual bool SetRemoteContent_w(const MediaContentDescription* content, | 482 virtual bool SetRemoteContent_w(const MediaContentDescription* content, |
| 478 ContentAction action, | 483 ContentAction action, |
| 479 std::string* error_desc); | 484 std::string* error_desc); |
| 480 bool GetStats_w(VideoMediaInfo* stats); | 485 bool GetStats_w(VideoMediaInfo* stats); |
| 481 webrtc::RtpParameters GetRtpParameters_w(uint32_t ssrc) const; | 486 webrtc::RtpParameters GetRtpParameters_w(uint32_t ssrc) const; |
| 482 bool SetRtpParameters_w(uint32_t ssrc, webrtc::RtpParameters parameters); | 487 bool SetRtpParameters_w(uint32_t ssrc, webrtc::RtpParameters parameters); |
| 483 | 488 |
| 484 virtual void OnMessage(rtc::Message* pmsg); | 489 virtual void OnMessage(rtc::Message* pmsg); |
| 485 virtual void GetSrtpCryptoSuites(std::vector<int>* crypto_suites) const; | 490 void GetSrtpCryptoSuites(const rtc::CryptoOptions& crypto_options, |
| 491 std::vector<int>* crypto_suites) const override; | |
| 486 virtual void OnConnectionMonitorUpdate( | 492 virtual void OnConnectionMonitorUpdate( |
| 487 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); | 493 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); |
| 488 virtual void OnMediaMonitorUpdate( | 494 virtual void OnMediaMonitorUpdate( |
| 489 VideoMediaChannel* media_channel, const VideoMediaInfo& info); | 495 VideoMediaChannel* media_channel, const VideoMediaInfo& info); |
| 490 | 496 |
| 491 std::unique_ptr<VideoMediaMonitor> media_monitor_; | 497 std::unique_ptr<VideoMediaMonitor> media_monitor_; |
| 492 | 498 |
| 493 // Last VideoSendParameters sent down to the media_channel() via | 499 // Last VideoSendParameters sent down to the media_channel() via |
| 494 // SetSendParameters. | 500 // SetSendParameters. |
| 495 VideoSendParameters last_send_params_; | 501 VideoSendParameters last_send_params_; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 585 virtual bool SetLocalContent_w(const MediaContentDescription* content, | 591 virtual bool SetLocalContent_w(const MediaContentDescription* content, |
| 586 ContentAction action, | 592 ContentAction action, |
| 587 std::string* error_desc); | 593 std::string* error_desc); |
| 588 virtual bool SetRemoteContent_w(const MediaContentDescription* content, | 594 virtual bool SetRemoteContent_w(const MediaContentDescription* content, |
| 589 ContentAction action, | 595 ContentAction action, |
| 590 std::string* error_desc); | 596 std::string* error_desc); |
| 591 virtual void ChangeState(); | 597 virtual void ChangeState(); |
| 592 virtual bool WantsPacket(bool rtcp, const rtc::CopyOnWriteBuffer* packet); | 598 virtual bool WantsPacket(bool rtcp, const rtc::CopyOnWriteBuffer* packet); |
| 593 | 599 |
| 594 virtual void OnMessage(rtc::Message* pmsg); | 600 virtual void OnMessage(rtc::Message* pmsg); |
| 595 virtual void GetSrtpCryptoSuites(std::vector<int>* crypto_suites) const; | 601 void GetSrtpCryptoSuites(const rtc::CryptoOptions& crypto_options, |
| 602 std::vector<int>* crypto_suites) const override; | |
| 596 virtual void OnConnectionMonitorUpdate( | 603 virtual void OnConnectionMonitorUpdate( |
| 597 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); | 604 ConnectionMonitor* monitor, const std::vector<ConnectionInfo>& infos); |
| 598 virtual void OnMediaMonitorUpdate( | 605 virtual void OnMediaMonitorUpdate( |
| 599 DataMediaChannel* media_channel, const DataMediaInfo& info); | 606 DataMediaChannel* media_channel, const DataMediaInfo& info); |
| 600 virtual bool ShouldSetupDtlsSrtp() const; | 607 virtual bool ShouldSetupDtlsSrtp() const; |
| 601 void OnDataReceived( | 608 void OnDataReceived( |
| 602 const ReceiveDataParams& params, const char* data, size_t len); | 609 const ReceiveDataParams& params, const char* data, size_t len); |
| 603 void OnDataChannelError(uint32_t ssrc, DataMediaChannel::Error error); | 610 void OnDataChannelError(uint32_t ssrc, DataMediaChannel::Error error); |
| 604 void OnDataChannelReadyToSend(bool writable); | 611 void OnDataChannelReadyToSend(bool writable); |
| 605 void OnStreamClosedRemotely(uint32_t sid); | 612 void OnStreamClosedRemotely(uint32_t sid); |
| 606 | 613 |
| 607 std::unique_ptr<DataMediaMonitor> media_monitor_; | 614 std::unique_ptr<DataMediaMonitor> media_monitor_; |
| 608 // TODO(pthatcher): Make a separate SctpDataChannel and | 615 // TODO(pthatcher): Make a separate SctpDataChannel and |
| 609 // RtpDataChannel instead of using this. | 616 // RtpDataChannel instead of using this. |
| 610 DataChannelType data_channel_type_; | 617 DataChannelType data_channel_type_; |
| 611 bool ready_to_send_data_; | 618 bool ready_to_send_data_; |
| 612 | 619 |
| 613 // Last DataSendParameters sent down to the media_channel() via | 620 // Last DataSendParameters sent down to the media_channel() via |
| 614 // SetSendParameters. | 621 // SetSendParameters. |
| 615 DataSendParameters last_send_params_; | 622 DataSendParameters last_send_params_; |
| 616 // Last DataRecvParameters sent down to the media_channel() via | 623 // Last DataRecvParameters sent down to the media_channel() via |
| 617 // SetRecvParameters. | 624 // SetRecvParameters. |
| 618 DataRecvParameters last_recv_params_; | 625 DataRecvParameters last_recv_params_; |
| 619 }; | 626 }; |
| 620 | 627 |
| 621 } // namespace cricket | 628 } // namespace cricket |
| 622 | 629 |
| 623 #endif // WEBRTC_PC_CHANNEL_H_ | 630 #endif // WEBRTC_PC_CHANNEL_H_ |
| OLD | NEW |