| OLD | NEW |
| 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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 virtual bool SendRtcp(rtc::Buffer* packet, | 206 virtual bool SendRtcp(rtc::Buffer* packet, |
| 207 rtc::DiffServCodePoint dscp); | 207 rtc::DiffServCodePoint dscp); |
| 208 | 208 |
| 209 // From TransportChannel | 209 // From TransportChannel |
| 210 void OnWritableState(TransportChannel* channel); | 210 void OnWritableState(TransportChannel* channel); |
| 211 virtual void OnChannelRead(TransportChannel* channel, | 211 virtual void OnChannelRead(TransportChannel* channel, |
| 212 const char* data, | 212 const char* data, |
| 213 size_t len, | 213 size_t len, |
| 214 const rtc::PacketTime& packet_time, | 214 const rtc::PacketTime& packet_time, |
| 215 int flags); | 215 int flags); |
| 216 void OnPacketSent(TransportChannel* channel, |
| 217 const rtc::SentPacket& packet_sent); |
| 216 void OnReadyToSend(TransportChannel* channel); | 218 void OnReadyToSend(TransportChannel* channel); |
| 217 | 219 |
| 218 bool PacketIsRtcp(const TransportChannel* channel, const char* data, | 220 bool PacketIsRtcp(const TransportChannel* channel, const char* data, |
| 219 size_t len); | 221 size_t len); |
| 220 bool SendPacket(bool rtcp, rtc::Buffer* packet, | 222 bool SendPacket(bool rtcp, rtc::Buffer* packet, |
| 221 rtc::DiffServCodePoint dscp); | 223 rtc::DiffServCodePoint dscp); |
| 222 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet); | 224 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet); |
| 223 void HandlePacket(bool rtcp, rtc::Buffer* packet, | 225 void HandlePacket(bool rtcp, rtc::Buffer* packet, |
| 224 const rtc::PacketTime& packet_time); | 226 const rtc::PacketTime& packet_time); |
| 225 | 227 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 254 ContentAction action, | 256 ContentAction action, |
| 255 std::string* error_desc) = 0; | 257 std::string* error_desc) = 0; |
| 256 virtual bool SetRemoteContent_w(const MediaContentDescription* content, | 258 virtual bool SetRemoteContent_w(const MediaContentDescription* content, |
| 257 ContentAction action, | 259 ContentAction action, |
| 258 std::string* error_desc) = 0; | 260 std::string* error_desc) = 0; |
| 259 bool SetRtpTransportParameters_w(const MediaContentDescription* content, | 261 bool SetRtpTransportParameters_w(const MediaContentDescription* content, |
| 260 ContentAction action, | 262 ContentAction action, |
| 261 ContentSource src, | 263 ContentSource src, |
| 262 std::string* error_desc); | 264 std::string* error_desc); |
| 263 | 265 |
| 264 // Helper method to get RTP Absoulute SendTime extension header id if | 266 // Helper method to store a subset of the RTP header extensions, if |
| 265 // present in remote supported extensions list. | 267 // present in the remote supported extensions list. |
| 266 void MaybeCacheRtpAbsSendTimeHeaderExtension( | 268 void MaybeCacheRtpHeaderExtensions( |
| 267 const std::vector<RtpHeaderExtension>& extensions); | 269 const std::vector<RtpHeaderExtension>& extensions); |
| 268 | 270 |
| 269 bool CheckSrtpConfig(const std::vector<CryptoParams>& cryptos, | 271 bool CheckSrtpConfig(const std::vector<CryptoParams>& cryptos, |
| 270 bool* dtls, | 272 bool* dtls, |
| 271 std::string* error_desc); | 273 std::string* error_desc); |
| 272 bool SetSrtp_w(const std::vector<CryptoParams>& params, | 274 bool SetSrtp_w(const std::vector<CryptoParams>& params, |
| 273 ContentAction action, | 275 ContentAction action, |
| 274 ContentSource src, | 276 ContentSource src, |
| 275 std::string* error_desc); | 277 std::string* error_desc); |
| 276 void ActivateRtcpMux_w(); | 278 void ActivateRtcpMux_w(); |
| 277 bool SetRtcpMux_w(bool enable, | 279 bool SetRtcpMux_w(bool enable, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 288 virtual void OnConnectionMonitorUpdate(ConnectionMonitor* monitor, | 290 virtual void OnConnectionMonitorUpdate(ConnectionMonitor* monitor, |
| 289 const std::vector<ConnectionInfo>& infos) = 0; | 291 const std::vector<ConnectionInfo>& infos) = 0; |
| 290 | 292 |
| 291 // Helper function for invoking bool-returning methods on the worker thread. | 293 // Helper function for invoking bool-returning methods on the worker thread. |
| 292 template <class FunctorT> | 294 template <class FunctorT> |
| 293 bool InvokeOnWorker(const FunctorT& functor) { | 295 bool InvokeOnWorker(const FunctorT& functor) { |
| 294 return worker_thread_->Invoke<bool>(functor); | 296 return worker_thread_->Invoke<bool>(functor); |
| 295 } | 297 } |
| 296 | 298 |
| 297 private: | 299 private: |
| 300 int32_t ParseTransportSequenceNumberHeaderExtension(uint8_t* data, |
| 301 size_t length) const; |
| 302 |
| 298 rtc::Thread* worker_thread_; | 303 rtc::Thread* worker_thread_; |
| 299 TransportController* transport_controller_; | 304 TransportController* transport_controller_; |
| 300 MediaChannel* media_channel_; | 305 MediaChannel* media_channel_; |
| 301 std::vector<StreamParams> local_streams_; | 306 std::vector<StreamParams> local_streams_; |
| 302 std::vector<StreamParams> remote_streams_; | 307 std::vector<StreamParams> remote_streams_; |
| 303 | 308 |
| 304 const std::string content_name_; | 309 const std::string content_name_; |
| 305 std::string transport_name_; | 310 std::string transport_name_; |
| 306 bool rtcp_transport_enabled_; | 311 bool rtcp_transport_enabled_; |
| 307 TransportChannel* transport_channel_; | 312 TransportChannel* transport_channel_; |
| 308 std::vector<std::pair<rtc::Socket::Option, int> > socket_options_; | 313 std::vector<std::pair<rtc::Socket::Option, int> > socket_options_; |
| 309 TransportChannel* rtcp_transport_channel_; | 314 TransportChannel* rtcp_transport_channel_; |
| 310 std::vector<std::pair<rtc::Socket::Option, int> > rtcp_socket_options_; | 315 std::vector<std::pair<rtc::Socket::Option, int> > rtcp_socket_options_; |
| 311 SrtpFilter srtp_filter_; | 316 SrtpFilter srtp_filter_; |
| 312 RtcpMuxFilter rtcp_mux_filter_; | 317 RtcpMuxFilter rtcp_mux_filter_; |
| 313 BundleFilter bundle_filter_; | 318 BundleFilter bundle_filter_; |
| 314 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_; | 319 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_; |
| 315 bool enabled_; | 320 bool enabled_; |
| 316 bool writable_; | 321 bool writable_; |
| 317 bool rtp_ready_to_send_; | 322 bool rtp_ready_to_send_; |
| 318 bool rtcp_ready_to_send_; | 323 bool rtcp_ready_to_send_; |
| 319 bool was_ever_writable_; | 324 bool was_ever_writable_; |
| 320 MediaContentDirection local_content_direction_; | 325 MediaContentDirection local_content_direction_; |
| 321 MediaContentDirection remote_content_direction_; | 326 MediaContentDirection remote_content_direction_; |
| 322 bool has_received_packet_; | 327 bool has_received_packet_; |
| 323 bool dtls_keyed_; | 328 bool dtls_keyed_; |
| 324 bool secure_required_; | 329 bool secure_required_; |
| 325 int rtp_abs_sendtime_extn_id_; | 330 int rtp_abs_sendtime_extn_id_; |
| 331 int rtp_transport_sequence_number_extn_id_; |
| 326 }; | 332 }; |
| 327 | 333 |
| 328 // VoiceChannel is a specialization that adds support for early media, DTMF, | 334 // VoiceChannel is a specialization that adds support for early media, DTMF, |
| 329 // and input/output level monitoring. | 335 // and input/output level monitoring. |
| 330 class VoiceChannel : public BaseChannel { | 336 class VoiceChannel : public BaseChannel { |
| 331 public: | 337 public: |
| 332 VoiceChannel(rtc::Thread* thread, | 338 VoiceChannel(rtc::Thread* thread, |
| 333 MediaEngineInterface* media_engine, | 339 MediaEngineInterface* media_engine, |
| 334 VoiceMediaChannel* channel, | 340 VoiceMediaChannel* channel, |
| 335 TransportController* transport_controller, | 341 TransportController* transport_controller, |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 // SetSendParameters. | 664 // SetSendParameters. |
| 659 DataSendParameters last_send_params_; | 665 DataSendParameters last_send_params_; |
| 660 // Last DataRecvParameters sent down to the media_channel() via | 666 // Last DataRecvParameters sent down to the media_channel() via |
| 661 // SetRecvParameters. | 667 // SetRecvParameters. |
| 662 DataRecvParameters last_recv_params_; | 668 DataRecvParameters last_recv_params_; |
| 663 }; | 669 }; |
| 664 | 670 |
| 665 } // namespace cricket | 671 } // namespace cricket |
| 666 | 672 |
| 667 #endif // TALK_SESSION_MEDIA_CHANNEL_H_ | 673 #endif // TALK_SESSION_MEDIA_CHANNEL_H_ |
| OLD | NEW |