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

Unified Diff: content/renderer/media/aec_dump_message_filter.cc

Issue 1246283003: Split out audio debug recording from RenderProcessHostImpl. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/aec_dump_message_filter.cc
diff --git a/content/renderer/media/aec_dump_message_filter.cc b/content/renderer/media/aec_dump_message_filter.cc
deleted file mode 100644
index 76f104ca4592496237b0a7d7a2009f39eaee35f8..0000000000000000000000000000000000000000
--- a/content/renderer/media/aec_dump_message_filter.cc
+++ /dev/null
@@ -1,176 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/media/aec_dump_message_filter.h"
-
-#include "base/single_thread_task_runner.h"
-#include "content/common/media/aec_dump_messages.h"
-#include "content/renderer/media/webrtc_logging.h"
-#include "ipc/ipc_logging.h"
-#include "ipc/ipc_sender.h"
-
-namespace {
-const int kInvalidDelegateId = -1;
-}
-
-namespace content {
-
-AecDumpMessageFilter* AecDumpMessageFilter::g_filter = NULL;
-
-AecDumpMessageFilter::AecDumpMessageFilter(
- const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
- const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner)
- : sender_(NULL),
- delegate_id_counter_(1),
- io_task_runner_(io_task_runner),
- main_task_runner_(main_task_runner) {
- DCHECK(!g_filter);
- g_filter = this;
-}
-
-AecDumpMessageFilter::~AecDumpMessageFilter() {
- DCHECK_EQ(g_filter, this);
- g_filter = NULL;
-}
-
-// static
-scoped_refptr<AecDumpMessageFilter> AecDumpMessageFilter::Get() {
- return g_filter;
-}
-
-void AecDumpMessageFilter::AddDelegate(
- AecDumpMessageFilter::AecDumpDelegate* delegate) {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- DCHECK(delegate);
- DCHECK_EQ(kInvalidDelegateId, GetIdForDelegate(delegate));
-
- int id = delegate_id_counter_++;
- delegates_[id] = delegate;
-
- io_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&AecDumpMessageFilter::RegisterAecDumpConsumer, this, id));
-}
-
-void AecDumpMessageFilter::RemoveDelegate(
- AecDumpMessageFilter::AecDumpDelegate* delegate) {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- DCHECK(delegate);
-
- int id = GetIdForDelegate(delegate);
- DCHECK_NE(kInvalidDelegateId, id);
- delegates_.erase(id);
-
- io_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&AecDumpMessageFilter::UnregisterAecDumpConsumer, this, id));
-}
-
-void AecDumpMessageFilter::Send(IPC::Message* message) {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- if (sender_)
- sender_->Send(message);
- else
- delete message;
-}
-
-void AecDumpMessageFilter::RegisterAecDumpConsumer(int id) {
- Send(new AecDumpMsg_RegisterAecDumpConsumer(id));
-}
-
-void AecDumpMessageFilter::UnregisterAecDumpConsumer(int id) {
- Send(new AecDumpMsg_UnregisterAecDumpConsumer(id));
-}
-
-bool AecDumpMessageFilter::OnMessageReceived(const IPC::Message& message) {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(AecDumpMessageFilter, message)
- IPC_MESSAGE_HANDLER(AecDumpMsg_EnableAecDump, OnEnableAecDump)
- IPC_MESSAGE_HANDLER(AecDumpMsg_DisableAecDump, OnDisableAecDump)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void AecDumpMessageFilter::OnFilterAdded(IPC::Sender* sender) {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- sender_ = sender;
-}
-
-void AecDumpMessageFilter::OnFilterRemoved() {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
-
- // Once removed, a filter will not be used again. At this time the
- // observer must be notified so it releases its reference.
- OnChannelClosing();
-}
-
-void AecDumpMessageFilter::OnChannelClosing() {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- sender_ = NULL;
- main_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&AecDumpMessageFilter::DoChannelClosingOnDelegates, this));
-}
-
-void AecDumpMessageFilter::OnEnableAecDump(
- int id,
- IPC::PlatformFileForTransit file_handle) {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- main_task_runner_->PostTask(
- FROM_HERE, base::Bind(&AecDumpMessageFilter::DoEnableAecDump, this, id,
- file_handle));
-}
-
-void AecDumpMessageFilter::OnDisableAecDump() {
- DCHECK(io_task_runner_->BelongsToCurrentThread());
- main_task_runner_->PostTask(
- FROM_HERE, base::Bind(&AecDumpMessageFilter::DoDisableAecDump, this));
-}
-
-void AecDumpMessageFilter::DoEnableAecDump(
- int id,
- IPC::PlatformFileForTransit file_handle) {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- DelegateMap::iterator it = delegates_.find(id);
- if (it != delegates_.end()) {
- it->second->OnAecDumpFile(file_handle);
- } else {
- // Delegate has been removed, we must close the file.
- base::File file = IPC::PlatformFileForTransitToFile(file_handle);
- DCHECK(file.IsValid());
- file.Close();
- }
-}
-
-void AecDumpMessageFilter::DoDisableAecDump() {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- for (DelegateMap::iterator it = delegates_.begin();
- it != delegates_.end(); ++it) {
- it->second->OnDisableAecDump();
- }
-}
-
-void AecDumpMessageFilter::DoChannelClosingOnDelegates() {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- for (DelegateMap::iterator it = delegates_.begin();
- it != delegates_.end(); ++it) {
- it->second->OnIpcClosing();
- }
- delegates_.clear();
-}
-
-int AecDumpMessageFilter::GetIdForDelegate(
- AecDumpMessageFilter::AecDumpDelegate* delegate) {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- for (DelegateMap::iterator it = delegates_.begin();
- it != delegates_.end(); ++it) {
- if (it->second == delegate)
- return it->first;
- }
- return kInvalidDelegateId;
-}
-
-} // namespace content

Powered by Google App Engine
This is Rietveld 408576698