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

Side by Side Diff: talk/media/webrtc/webrtcvoiceengine.h

Issue 1385893002: Remove default receive channel from WVoE; baby step 3. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: remove implementation of SetRemoteRenderer Created 5 years, 2 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 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 bool SetLocalRenderer(uint32_t ssrc, AudioRenderer* renderer); 253 bool SetLocalRenderer(uint32_t ssrc, AudioRenderer* renderer);
254 bool MuteStream(uint32_t ssrc, bool mute); 254 bool MuteStream(uint32_t ssrc, bool mute);
255 255
256 WebRtcVoiceEngine* engine() { return engine_; } 256 WebRtcVoiceEngine* engine() { return engine_; }
257 int GetLastEngineError() { return engine()->GetLastEngineError(); } 257 int GetLastEngineError() { return engine()->GetLastEngineError(); }
258 int GetOutputLevel(int channel); 258 int GetOutputLevel(int channel);
259 bool GetRedSendCodec(const AudioCodec& red_codec, 259 bool GetRedSendCodec(const AudioCodec& red_codec,
260 const std::vector<AudioCodec>& all_codecs, 260 const std::vector<AudioCodec>& all_codecs,
261 webrtc::CodecInst* send_codec); 261 webrtc::CodecInst* send_codec);
262 bool EnableRtcp(int channel); 262 bool EnableRtcp(int channel);
263 bool ResetRecvCodecs(int channel);
264 bool SetPlayout(int channel, bool playout); 263 bool SetPlayout(int channel, bool playout);
265 static uint32_t ParseSsrc(const void* data, size_t len, bool rtcp);
266 static Error WebRtcErrorToChannelError(int err_code); 264 static Error WebRtcErrorToChannelError(int err_code);
267 265
268 class WebRtcVoiceChannelRenderer; 266 class WebRtcVoiceChannelRenderer;
269 // Map of ssrc to WebRtcVoiceChannelRenderer object. A new object of 267 // Map of ssrc to WebRtcVoiceChannelRenderer object. A new object of
270 // WebRtcVoiceChannelRenderer will be created for every new stream and 268 // WebRtcVoiceChannelRenderer will be created for every new stream and
271 // will be destroyed when the stream goes away. 269 // will be destroyed when the stream goes away.
272 typedef std::map<uint32_t, WebRtcVoiceChannelRenderer*> ChannelMap; 270 typedef std::map<uint32_t, WebRtcVoiceChannelRenderer*> ChannelMap;
273 typedef int (webrtc::VoERTP_RTCP::* ExtensionSetterFunction)(int, bool, 271 typedef int (webrtc::VoERTP_RTCP::* ExtensionSetterFunction)(int, bool,
274 unsigned char); 272 unsigned char);
275 273
276 void SetNack(int channel, bool nack_enabled); 274 void SetNack(int channel, bool nack_enabled);
277 void SetNack(const ChannelMap& channels, bool nack_enabled); 275 void SetNack(const ChannelMap& channels, bool nack_enabled);
278 bool SetSendCodec(const webrtc::CodecInst& send_codec); 276 bool SetSendCodec(const webrtc::CodecInst& send_codec);
279 bool SetSendCodec(int channel, const webrtc::CodecInst& send_codec); 277 bool SetSendCodec(int channel, const webrtc::CodecInst& send_codec);
280 bool ChangePlayout(bool playout); 278 bool ChangePlayout(bool playout);
281 bool ChangeSend(SendFlags send); 279 bool ChangeSend(SendFlags send);
282 bool ChangeSend(int channel, SendFlags send); 280 bool ChangeSend(int channel, SendFlags send);
283 void ConfigureSendChannel(int channel); 281 void ConfigureSendChannel(int channel);
284 bool ConfigureRecvChannel(int channel); 282 bool ConfigureRecvChannel(int channel);
285 bool DeleteChannel(int channel); 283 bool DeleteChannel(int channel);
286 bool InConferenceMode() const {
287 return options_.conference_mode.GetWithDefaultIfUnset(false);
288 }
289 bool IsDefaultChannel(int channel_id) const { 284 bool IsDefaultChannel(int channel_id) const {
290 return channel_id == default_send_channel_id_; 285 return channel_id == default_send_channel_id_;
291 } 286 }
292 bool SetSendCodecs(int channel, const std::vector<AudioCodec>& codecs); 287 bool SetSendCodecs(int channel, const std::vector<AudioCodec>& codecs);
293 bool SetSendBitrateInternal(int bps); 288 bool SetSendBitrateInternal(int bps);
294 289
295 bool SetHeaderExtension(ExtensionSetterFunction setter, int channel_id, 290 bool SetHeaderExtension(ExtensionSetterFunction setter, int channel_id,
296 const RtpHeaderExtension* extension); 291 const RtpHeaderExtension* extension);
297 void RecreateAudioReceiveStreams(); 292 void RecreateAudioReceiveStreams();
298 void AddAudioReceiveStream(uint32_t ssrc); 293 void AddAudioReceiveStream(uint32_t ssrc);
(...skipping 19 matching lines...) Expand all
318 AudioOptions options_; 313 AudioOptions options_;
319 bool dtmf_allowed_; 314 bool dtmf_allowed_;
320 bool desired_playout_; 315 bool desired_playout_;
321 bool nack_enabled_; 316 bool nack_enabled_;
322 bool playout_; 317 bool playout_;
323 bool typing_noise_detected_; 318 bool typing_noise_detected_;
324 SendFlags desired_send_; 319 SendFlags desired_send_;
325 SendFlags send_; 320 SendFlags send_;
326 webrtc::Call* const call_; 321 webrtc::Call* const call_;
327 322
323 int64_t default_recv_ssrc_;
pthatcher1 2015/10/08 18:55:40 Can you comment that it's really int32_t with an "
the sun 2015/10/12 15:03:01 Done.
324
328 // send_channels_ contains the channels which are being used for sending. 325 // send_channels_ contains the channels which are being used for sending.
329 // When the default channel (default_send_channel_id) is used for sending, it 326 // When the default channel (default_send_channel_id) is used for sending, it
330 // is contained in send_channels_, otherwise not. 327 // is contained in send_channels_, otherwise not.
331 ChannelMap send_channels_; 328 ChannelMap send_channels_;
332 std::vector<RtpHeaderExtension> send_extensions_; 329 std::vector<RtpHeaderExtension> send_extensions_;
333 uint32_t default_receive_ssrc_; 330 ChannelMap receive_channels_;
334 // Note the default channel (default_send_channel_id()) can reside in both
335 // receive_channels_ and send_channels_ in non-conference mode and in that
336 // case it will only be there if a non-zero default_receive_ssrc_ is set.
337 ChannelMap receive_channels_; // for multiple sources
338 std::map<uint32_t, webrtc::AudioReceiveStream*> receive_streams_; 331 std::map<uint32_t, webrtc::AudioReceiveStream*> receive_streams_;
339 std::map<uint32_t, StreamParams> receive_stream_params_; 332 std::map<uint32_t, StreamParams> receive_stream_params_;
340 // receive_channels_ can be read from WebRtc callback thread. Access from 333 // receive_channels_ can be read from WebRtc callback thread. Access from
341 // the WebRtc thread must be synchronized with edits on the worker thread. 334 // the WebRtc thread must be synchronized with edits on the worker thread.
342 // Reads on the worker thread are ok. 335 // Reads on the worker thread are ok.
343 std::vector<RtpHeaderExtension> receive_extensions_; 336 std::vector<RtpHeaderExtension> receive_extensions_;
344 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; 337 std::vector<webrtc::RtpExtension> recv_rtp_extensions_;
345
346 // Do not lock this on the VoE media processor thread; potential for deadlock
347 // exists.
348 mutable rtc::CriticalSection receive_channels_cs_;
349 }; 338 };
350 339
351 } // namespace cricket 340 } // namespace cricket
352 341
353 #endif // TALK_MEDIA_WEBRTCVOICEENGINE_H_ 342 #endif // TALK_MEDIA_WEBRTCVOICEENGINE_H_
OLDNEW
« no previous file with comments | « no previous file | talk/media/webrtc/webrtcvoiceengine.cc » ('j') | talk/media/webrtc/webrtcvoiceengine.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698