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

Unified Diff: webrtc/media/base/fakemediaengine.h

Issue 1741933002: Prevent a voice channel from sending data before a renderer is set. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Modifying copyright header to satisfy presubmit bot. Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/media/base/audiosource.h ('k') | webrtc/media/base/mediachannel.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/base/fakemediaengine.h
diff --git a/webrtc/media/base/fakemediaengine.h b/webrtc/media/base/fakemediaengine.h
index afd262bb5e92263951cc85e7be3256e5d867801c..c3f16603cae69a33097af52adc304029403668e9 100644
--- a/webrtc/media/base/fakemediaengine.h
+++ b/webrtc/media/base/fakemediaengine.h
@@ -21,7 +21,7 @@
#include "webrtc/audio_sink.h"
#include "webrtc/base/buffer.h"
#include "webrtc/base/stringutils.h"
-#include "webrtc/media/base/audiorenderer.h"
+#include "webrtc/media/base/audiosource.h"
#include "webrtc/media/base/mediaengine.h"
#include "webrtc/media/base/rtputils.h"
#include "webrtc/media/base/streamparams.h"
@@ -253,14 +253,12 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> {
set_playout(playout);
return true;
}
- virtual bool SetSend(SendFlags flag) {
- return set_sending(flag != SEND_NOTHING);
- }
+ virtual void SetSend(bool send) { set_sending(send); }
virtual bool SetAudioSend(uint32_t ssrc,
bool enable,
const AudioOptions* options,
- AudioRenderer* renderer) {
- if (!SetLocalRenderer(ssrc, renderer)) {
+ AudioSource* source) {
+ if (!SetLocalSource(ssrc, source)) {
return false;
}
if (!RtpHelper<VoiceMediaChannel>::MuteStream(ssrc, !enable)) {
@@ -338,15 +336,14 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> {
}
private:
- class VoiceChannelAudioSink : public AudioRenderer::Sink {
+ class VoiceChannelAudioSink : public AudioSource::Sink {
public:
- explicit VoiceChannelAudioSink(AudioRenderer* renderer)
- : renderer_(renderer) {
- renderer_->SetSink(this);
+ explicit VoiceChannelAudioSink(AudioSource* source) : source_(source) {
+ source_->SetSink(this);
}
virtual ~VoiceChannelAudioSink() {
- if (renderer_) {
- renderer_->SetSink(NULL);
+ if (source_) {
+ source_->SetSink(nullptr);
}
}
void OnData(const void* audio_data,
@@ -354,11 +351,11 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> {
int sample_rate,
size_t number_of_channels,
size_t number_of_frames) override {}
- void OnClose() override { renderer_ = NULL; }
- AudioRenderer* renderer() const { return renderer_; }
+ void OnClose() override { source_ = nullptr; }
+ AudioSource* source() const { return source_; }
private:
- AudioRenderer* renderer_;
+ AudioSource* source_;
};
bool SetRecvCodecs(const std::vector<AudioCodec>& codecs) {
@@ -383,19 +380,19 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> {
options_.SetAll(options);
return true;
}
- bool SetLocalRenderer(uint32_t ssrc, AudioRenderer* renderer) {
- auto it = local_renderers_.find(ssrc);
- if (renderer) {
- if (it != local_renderers_.end()) {
- ASSERT(it->second->renderer() == renderer);
+ bool SetLocalSource(uint32_t ssrc, AudioSource* source) {
+ auto it = local_sinks_.find(ssrc);
+ if (source) {
+ if (it != local_sinks_.end()) {
+ ASSERT(it->second->source() == source);
} else {
- local_renderers_.insert(std::make_pair(
- ssrc, new VoiceChannelAudioSink(renderer)));
+ local_sinks_.insert(
+ std::make_pair(ssrc, new VoiceChannelAudioSink(source)));
}
} else {
- if (it != local_renderers_.end()) {
+ if (it != local_sinks_.end()) {
delete it->second;
- local_renderers_.erase(it);
+ local_sinks_.erase(it);
}
}
return true;
@@ -408,7 +405,7 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> {
std::vector<DtmfInfo> dtmf_info_queue_;
int time_since_last_typing_;
AudioOptions options_;
- std::map<uint32_t, VoiceChannelAudioSink*> local_renderers_;
+ std::map<uint32_t, VoiceChannelAudioSink*> local_sinks_;
std::unique_ptr<webrtc::AudioSinkInterface> sink_;
};
« no previous file with comments | « webrtc/media/base/audiosource.h ('k') | webrtc/media/base/mediachannel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698