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

Unified Diff: content/renderer/media/webrtc/processed_local_audio_track.cc

Issue 1834323002: MediaStream audio: Refactor 3 separate "glue" implementations into one. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments from PS2: AudioInputDevice --> AudioCapturerSource, and refptr foo in WebRtcMedi… 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
Index: content/renderer/media/webrtc/processed_local_audio_track.cc
diff --git a/base/supports_user_data.cc b/content/renderer/media/webrtc/processed_local_audio_track.cc
similarity index 14%
copy from base/supports_user_data.cc
copy to content/renderer/media/webrtc/processed_local_audio_track.cc
index 482a7e1ed61d82c08365a33ce187dab105c069ba..f66ce1e071022a2e70039221947c195b6fe03765 100644
--- a/base/supports_user_data.cc
+++ b/content/renderer/media/webrtc/processed_local_audio_track.cc
@@ -2,44 +2,60 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/supports_user_data.h"
+#include "content/renderer/media/webrtc/processed_local_audio_track.h"
-namespace base {
+#include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h"
-SupportsUserData::SupportsUserData() {
- // Harmless to construct on a different thread to subsequent usage.
- thread_checker_.DetachFromThread();
+namespace content {
+
+namespace {
+// Used as an identifier for ProcessedLocalAudioTrack::From().
+void* const kClassIdentifier = const_cast<void**>(&kClassIdentifier);
+} // namespace
+
+ProcessedLocalAudioTrack::ProcessedLocalAudioTrack(
+ scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter)
+ : MediaStreamAudioTrack(true), adapter_(std::move(adapter)) {
+ DCHECK(adapter_);
+ adapter_->SetMediaStreamAudioTrack(MediaStreamAudioTrack::GetWeakPtr());
+
+ DVLOG(1) << "ProcessedLocalAudioTrack::ProcessedLocalAudioTrack()";
}
-SupportsUserData::Data* SupportsUserData::GetUserData(const void* key) const {
+ProcessedLocalAudioTrack::~ProcessedLocalAudioTrack() {
DCHECK(thread_checker_.CalledOnValidThread());
- DataMap::const_iterator found = user_data_.find(key);
- if (found != user_data_.end())
- return found->second.get();
- return NULL;
+ DVLOG(1) << "ProcessedLocalAudioTrack::~ProcessedLocalAudioTrack()";
+ // Ensure the track is stopped.
+ MediaStreamAudioTrack::Stop();
}
-void SupportsUserData::SetUserData(const void* key, Data* data) {
- DCHECK(thread_checker_.CalledOnValidThread());
- user_data_[key] = make_scoped_ptr(data);
+// static
+ProcessedLocalAudioTrack* ProcessedLocalAudioTrack::From(
+ MediaStreamAudioTrack* track) {
+ if (track && track->GetClassIdentifier() == kClassIdentifier)
+ return static_cast<ProcessedLocalAudioTrack*>(track);
+ return nullptr;
}
-void SupportsUserData::RemoveUserData(const void* key) {
- DCHECK(thread_checker_.CalledOnValidThread());
- user_data_.erase(key);
+void* ProcessedLocalAudioTrack::GetClassIdentifier() const {
+ return kClassIdentifier;
+}
+
+void ProcessedLocalAudioTrack::SetLevel(
+ scoped_refptr<MediaStreamAudioLevelCalculator::Level> level) {
+ adapter_->SetLevel(std::move(level));
}
-void SupportsUserData::DetachUserDataThread() {
- thread_checker_.DetachFromThread();
+void ProcessedLocalAudioTrack::SetAudioProcessor(
+ scoped_refptr<MediaStreamAudioProcessor> processor) {
+ adapter_->SetAudioProcessor(std::move(processor));
}
-SupportsUserData::~SupportsUserData() {
- DCHECK(thread_checker_.CalledOnValidThread() || user_data_.empty());
- DataMap local_user_data;
- user_data_.swap(local_user_data);
- // Now this->user_data_ is empty, and any destructors called transitively from
- // the destruction of |local_user_data| will see it that way instead of
- // examining a being-destroyed object.
+void ProcessedLocalAudioTrack::SetEnabled(bool enabled) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ MediaStreamAudioTrack::SetEnabled(enabled);
+ if (adapter_.get())
+ adapter_->set_enabled(enabled);
}
-} // namespace base
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698