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

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

Issue 1311533009: - Rename VoiceChannel::MuteStream() -> SetAudioSend() (incl. media channel) (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@lj_remove_typingmonitor_files
Patch Set: Created 5 years, 3 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 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 struct CryptoParams; 54 struct CryptoParams;
55 class MediaContentDescription; 55 class MediaContentDescription;
56 struct ViewRequest; 56 struct ViewRequest;
57 57
58 enum SinkType { 58 enum SinkType {
59 SINK_PRE_CRYPTO, // Sink packets before encryption or after decryption. 59 SINK_PRE_CRYPTO, // Sink packets before encryption or after decryption.
60 SINK_POST_CRYPTO // Sink packets after encryption or before decryption. 60 SINK_POST_CRYPTO // Sink packets after encryption or before decryption.
61 }; 61 };
62 62
63 // BaseChannel contains logic common to voice and video, including 63 // BaseChannel contains logic common to voice and video, including
64 // enable/mute, marshaling calls to a worker thread, and 64 // enable, marshaling calls to a worker thread, and
65 // connection and media monitors. 65 // connection and media monitors.
66 // 66 //
67 // WARNING! SUBCLASSES MUST CALL Deinit() IN THEIR DESTRUCTORS! 67 // WARNING! SUBCLASSES MUST CALL Deinit() IN THEIR DESTRUCTORS!
68 // This is required to avoid a data race between the destructor modifying the 68 // This is required to avoid a data race between the destructor modifying the
69 // vtable, and the media channel's thread using BaseChannel as the 69 // vtable, and the media channel's thread using BaseChannel as the
70 // NetworkInterface. 70 // NetworkInterface.
71 71
72 class BaseChannel 72 class BaseChannel
73 : public rtc::MessageHandler, public sigslot::has_slots<>, 73 : public rtc::MessageHandler, public sigslot::has_slots<>,
74 public MediaChannel::NetworkInterface, 74 public MediaChannel::NetworkInterface,
(...skipping 21 matching lines...) Expand all
96 // This function returns true if we are using SRTP. 96 // This function returns true if we are using SRTP.
97 bool secure() const { return srtp_filter_.IsActive(); } 97 bool secure() const { return srtp_filter_.IsActive(); }
98 // The following function returns true if we are using 98 // The following function returns true if we are using
99 // DTLS-based keying. If you turned off SRTP later, however 99 // DTLS-based keying. If you turned off SRTP later, however
100 // you could have secure() == false and dtls_secure() == true. 100 // you could have secure() == false and dtls_secure() == true.
101 bool secure_dtls() const { return dtls_keyed_; } 101 bool secure_dtls() const { return dtls_keyed_; }
102 // This function returns true if we require secure channel for call setup. 102 // This function returns true if we require secure channel for call setup.
103 bool secure_required() const { return secure_required_; } 103 bool secure_required() const { return secure_required_; }
104 104
105 bool writable() const { return writable_; } 105 bool writable() const { return writable_; }
106 bool IsStreamMuted(uint32 ssrc);
107 106
108 // Activate RTCP mux, regardless of the state so far. Once 107 // Activate RTCP mux, regardless of the state so far. Once
109 // activated, it can not be deactivated, and if the remote 108 // activated, it can not be deactivated, and if the remote
110 // description doesn't support RTCP mux, setting the remote 109 // description doesn't support RTCP mux, setting the remote
111 // description will fail. 110 // description will fail.
112 void ActivateRtcpMux(); 111 void ActivateRtcpMux();
113 bool PushdownLocalDescription(const SessionDescription* local_desc, 112 bool PushdownLocalDescription(const SessionDescription* local_desc,
114 ContentAction action, 113 ContentAction action,
115 std::string* error_desc); 114 std::string* error_desc);
116 bool PushdownRemoteDescription(const SessionDescription* remote_desc, 115 bool PushdownRemoteDescription(const SessionDescription* remote_desc,
117 ContentAction action, 116 ContentAction action,
118 std::string* error_desc); 117 std::string* error_desc);
119 // Channel control 118 // Channel control
120 bool SetLocalContent(const MediaContentDescription* content, 119 bool SetLocalContent(const MediaContentDescription* content,
121 ContentAction action, 120 ContentAction action,
122 std::string* error_desc); 121 std::string* error_desc);
123 bool SetRemoteContent(const MediaContentDescription* content, 122 bool SetRemoteContent(const MediaContentDescription* content,
124 ContentAction action, 123 ContentAction action,
125 std::string* error_desc); 124 std::string* error_desc);
126 125
127 bool Enable(bool enable); 126 bool Enable(bool enable);
128 // Mute sending media on the stream with SSRC |ssrc|
129 // If there is only one sending stream SSRC 0 can be used.
130 bool MuteStream(uint32 ssrc, bool mute);
131 127
132 // Multiplexing 128 // Multiplexing
133 bool AddRecvStream(const StreamParams& sp); 129 bool AddRecvStream(const StreamParams& sp);
134 bool RemoveRecvStream(uint32 ssrc); 130 bool RemoveRecvStream(uint32 ssrc);
135 bool AddSendStream(const StreamParams& sp); 131 bool AddSendStream(const StreamParams& sp);
136 bool RemoveSendStream(uint32 ssrc); 132 bool RemoveSendStream(uint32 ssrc);
137 133
138 // Monitoring 134 // Monitoring
139 void StartConnectionMonitor(int cms); 135 void StartConnectionMonitor(int cms);
140 void StopConnectionMonitor(); 136 void StopConnectionMonitor();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet); 216 virtual bool WantsPacket(bool rtcp, rtc::Buffer* packet);
221 void HandlePacket(bool rtcp, rtc::Buffer* packet, 217 void HandlePacket(bool rtcp, rtc::Buffer* packet,
222 const rtc::PacketTime& packet_time); 218 const rtc::PacketTime& packet_time);
223 219
224 // Apply the new local/remote session description. 220 // Apply the new local/remote session description.
225 void OnNewLocalDescription(BaseSession* session, ContentAction action); 221 void OnNewLocalDescription(BaseSession* session, ContentAction action);
226 void OnNewRemoteDescription(BaseSession* session, ContentAction action); 222 void OnNewRemoteDescription(BaseSession* session, ContentAction action);
227 223
228 void EnableMedia_w(); 224 void EnableMedia_w();
229 void DisableMedia_w(); 225 void DisableMedia_w();
230 bool MuteStream_w(uint32 ssrc, bool mute);
231 bool IsStreamMuted_w(uint32 ssrc);
232 void ChannelWritable_w(); 226 void ChannelWritable_w();
233 void ChannelNotWritable_w(); 227 void ChannelNotWritable_w();
234 bool AddRecvStream_w(const StreamParams& sp); 228 bool AddRecvStream_w(const StreamParams& sp);
235 bool RemoveRecvStream_w(uint32 ssrc); 229 bool RemoveRecvStream_w(uint32 ssrc);
236 bool AddSendStream_w(const StreamParams& sp); 230 bool AddSendStream_w(const StreamParams& sp);
237 bool RemoveSendStream_w(uint32 ssrc); 231 bool RemoveSendStream_w(uint32 ssrc);
238 virtual bool ShouldSetupDtlsSrtp() const; 232 virtual bool ShouldSetupDtlsSrtp() const;
239 // Do the DTLS key expansion and impose it on the SRTP/SRTCP filters. 233 // Do the DTLS key expansion and impose it on the SRTP/SRTCP filters.
240 // |rtcp_channel| indicates whether to set up the RTP or RTCP filter. 234 // |rtcp_channel| indicates whether to set up the RTP or RTCP filter.
241 bool SetupDtlsSrtp(bool rtcp_channel); 235 bool SetupDtlsSrtp(bool rtcp_channel);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 RtcpMuxFilter rtcp_mux_filter_; 306 RtcpMuxFilter rtcp_mux_filter_;
313 BundleFilter bundle_filter_; 307 BundleFilter bundle_filter_;
314 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_; 308 rtc::scoped_ptr<ConnectionMonitor> connection_monitor_;
315 bool enabled_; 309 bool enabled_;
316 bool writable_; 310 bool writable_;
317 bool rtp_ready_to_send_; 311 bool rtp_ready_to_send_;
318 bool rtcp_ready_to_send_; 312 bool rtcp_ready_to_send_;
319 bool was_ever_writable_; 313 bool was_ever_writable_;
320 MediaContentDirection local_content_direction_; 314 MediaContentDirection local_content_direction_;
321 MediaContentDirection remote_content_direction_; 315 MediaContentDirection remote_content_direction_;
322 std::set<uint32> muted_streams_;
323 bool has_received_packet_; 316 bool has_received_packet_;
324 bool dtls_keyed_; 317 bool dtls_keyed_;
325 bool secure_required_; 318 bool secure_required_;
326 int rtp_abs_sendtime_extn_id_; 319 int rtp_abs_sendtime_extn_id_;
327 }; 320 };
328 321
329 // VoiceChannel is a specialization that adds support for early media, DTMF, 322 // VoiceChannel is a specialization that adds support for early media, DTMF,
330 // and input/output level monitoring. 323 // and input/output level monitoring.
331 class VoiceChannel : public BaseChannel { 324 class VoiceChannel : public BaseChannel {
332 public: 325 public:
333 VoiceChannel(rtc::Thread* thread, MediaEngineInterface* media_engine, 326 VoiceChannel(rtc::Thread* thread, MediaEngineInterface* media_engine,
334 VoiceMediaChannel* channel, BaseSession* session, 327 VoiceMediaChannel* channel, BaseSession* session,
335 const std::string& content_name, bool rtcp); 328 const std::string& content_name, bool rtcp);
336 ~VoiceChannel(); 329 ~VoiceChannel();
337 bool Init(); 330 bool Init();
338 bool SetRemoteRenderer(uint32 ssrc, AudioRenderer* renderer); 331 bool SetRemoteRenderer(uint32 ssrc, AudioRenderer* renderer);
339 bool SetLocalRenderer(uint32 ssrc, AudioRenderer* renderer); 332
333 // Configure sending media on the stream with SSRC |ssrc|
334 // If there is only one sending stream SSRC 0 can be used.
335 bool SetAudioSend(uint32 ssrc, bool mute, const AudioOptions* options,
336 AudioRenderer* renderer);
340 337
341 // downcasts a MediaChannel 338 // downcasts a MediaChannel
342 virtual VoiceMediaChannel* media_channel() const { 339 virtual VoiceMediaChannel* media_channel() const {
343 return static_cast<VoiceMediaChannel*>(BaseChannel::media_channel()); 340 return static_cast<VoiceMediaChannel*>(BaseChannel::media_channel());
344 } 341 }
345 342
346 bool SetRingbackTone(const void* buf, int len); 343 bool SetRingbackTone(const void* buf, int len);
347 void SetEarlyMedia(bool enable); 344 void SetEarlyMedia(bool enable);
348 // This signal is emitted when we have gone a period of time without 345 // This signal is emitted when we have gone a period of time without
349 // receiving early media. When received, a UI should start playing its 346 // receiving early media. When received, a UI should start playing its
(...skipping 30 matching lines...) Expand all
380 377
381 int GetInputLevel_w(); 378 int GetInputLevel_w();
382 int GetOutputLevel_w(); 379 int GetOutputLevel_w();
383 void GetActiveStreams_w(AudioInfo::StreamList* actives); 380 void GetActiveStreams_w(AudioInfo::StreamList* actives);
384 381
385 // Signal errors from VoiceMediaChannel. Arguments are: 382 // Signal errors from VoiceMediaChannel. Arguments are:
386 // ssrc(uint32), and error(VoiceMediaChannel::Error). 383 // ssrc(uint32), and error(VoiceMediaChannel::Error).
387 sigslot::signal3<VoiceChannel*, uint32, VoiceMediaChannel::Error> 384 sigslot::signal3<VoiceChannel*, uint32, VoiceMediaChannel::Error>
388 SignalMediaError; 385 SignalMediaError;
389 386
390 // Configuration and setting.
391 bool SetChannelOptions(const AudioOptions& options);
392
393 private: 387 private:
394 // overrides from BaseChannel 388 // overrides from BaseChannel
395 virtual void OnChannelRead(TransportChannel* channel, 389 virtual void OnChannelRead(TransportChannel* channel,
396 const char* data, size_t len, 390 const char* data, size_t len,
397 const rtc::PacketTime& packet_time, 391 const rtc::PacketTime& packet_time,
398 int flags); 392 int flags);
399 virtual void ChangeState(); 393 virtual void ChangeState();
400 virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc); 394 virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc);
401 virtual bool SetLocalContent_w(const MediaContentDescription* content, 395 virtual bool SetLocalContent_w(const MediaContentDescription* content,
402 ContentAction action, 396 ContentAction action,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 void StartMediaMonitor(int cms); 467 void StartMediaMonitor(int cms);
474 void StopMediaMonitor(); 468 void StopMediaMonitor();
475 sigslot::signal2<VideoChannel*, const VideoMediaInfo&> SignalMediaMonitor; 469 sigslot::signal2<VideoChannel*, const VideoMediaInfo&> SignalMediaMonitor;
476 sigslot::signal2<uint32, rtc::WindowEvent> SignalScreencastWindowEvent; 470 sigslot::signal2<uint32, rtc::WindowEvent> SignalScreencastWindowEvent;
477 471
478 bool SendIntraFrame(); 472 bool SendIntraFrame();
479 bool RequestIntraFrame(); 473 bool RequestIntraFrame();
480 sigslot::signal3<VideoChannel*, uint32, VideoMediaChannel::Error> 474 sigslot::signal3<VideoChannel*, uint32, VideoMediaChannel::Error>
481 SignalMediaError; 475 SignalMediaError;
482 476
483 // Configuration and setting. 477 // Mute sending media on the stream with SSRC |ssrc|
484 bool SetChannelOptions(const VideoOptions& options); 478 // If there is only one sending stream SSRC 0 can be used.
pthatcher1 2015/09/09 07:16:12 For the audio comment, you call it "configure send
the sun 2015/09/09 09:50:50 Because copy+paste.
479 bool SetVideoSend(uint32 ssrc, bool mute, const VideoOptions* options);
485 480
486 private: 481 private:
487 typedef std::map<uint32, VideoCapturer*> ScreencastMap; 482 typedef std::map<uint32, VideoCapturer*> ScreencastMap;
488 struct ScreencastDetailsData; 483 struct ScreencastDetailsData;
489 484
490 // overrides from BaseChannel 485 // overrides from BaseChannel
491 virtual void ChangeState(); 486 virtual void ChangeState();
492 virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc); 487 virtual const ContentInfo* GetFirstContent(const SessionDescription* sdesc);
493 virtual bool SetLocalContent_w(const MediaContentDescription* content, 488 virtual bool SetLocalContent_w(const MediaContentDescription* content,
494 ContentAction action, 489 ContentAction action,
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 // SetSendParameters. 649 // SetSendParameters.
655 DataSendParameters last_send_params_; 650 DataSendParameters last_send_params_;
656 // Last DataRecvParameters sent down to the media_channel() via 651 // Last DataRecvParameters sent down to the media_channel() via
657 // SetRecvParameters. 652 // SetRecvParameters.
658 DataRecvParameters last_recv_params_; 653 DataRecvParameters last_recv_params_;
659 }; 654 };
660 655
661 } // namespace cricket 656 } // namespace cricket
662 657
663 #endif // TALK_SESSION_MEDIA_CHANNEL_H_ 658 #endif // TALK_SESSION_MEDIA_CHANNEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698