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

Unified Diff: content/renderer/media/audio_message_filter.h

Issue 1930393002: Switch stream creation and closing in Chrome audio rendering from IPC to Mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unique_ptr for Binding Created 4 years, 7 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 | « content/content_tests.gypi ('k') | content/renderer/media/audio_message_filter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/audio_message_filter.h
diff --git a/content/renderer/media/audio_message_filter.h b/content/renderer/media/audio_message_filter.h
index 47a5ed8c8da4ee75c2cb5133bd387bf078908e6c..d1a73ce910d3a0d60a7aea8a33d75f2a14b5eeb2 100644
--- a/content/renderer/media/audio_message_filter.h
+++ b/content/renderer/media/audio_message_filter.h
@@ -16,9 +16,11 @@
#include "base/sync_socket.h"
#include "base/synchronization/lock.h"
#include "content/common/content_export.h"
+#include "content/renderer/media/audio_output_client.h"
#include "ipc/message_filter.h"
#include "media/audio/audio_output_ipc.h"
#include "media/base/audio_hardware_config.h"
+#include "media/mojo/interfaces/audio_output.mojom.h"
namespace base {
class SingleThreadTaskRunner;
@@ -46,11 +48,32 @@ class CONTENT_EXPORT AudioMessageFilter : public IPC::MessageFilter {
std::unique_ptr<media::AudioOutputIPC> CreateAudioOutputIPC(
int render_frame_id);
+ virtual void CloseStream(int stream_id);
+
// IO task runner associated with this message filter.
base::SingleThreadTaskRunner* io_task_runner() const {
return io_task_runner_.get();
}
+ // Received when browser process has created an audio output stream.
+ virtual void StreamCreated(
+ int stream_id,
+ base::SharedMemoryHandle handle,
+ base::SyncSocket::TransitDescriptor socket_descriptor,
+ uint32_t length);
+
+ // Received when internal state of browser process' audio output device has
+ // changed.
+ virtual void OnStreamStateChanged(int stream_id,
+ media::AudioOutputIPCDelegateState state);
+
+ // Register |audio_output_client_| for a frame.
+ void RegisterAudioOutputClient(
+ int id,
+ scoped_refptr<content::AudioOutputClient> audio_output_client) {
+ audio_output_clients_.insert(std::make_pair(id, audio_output_client));
+ }
+
protected:
~AudioMessageFilter() override;
@@ -78,23 +101,14 @@ class CONTENT_EXPORT AudioMessageFilter : public IPC::MessageFilter {
const media::AudioParameters& output_params,
const std::string& matched_device_id);
- // Received when browser process has created an audio output stream.
- void OnStreamCreated(int stream_id,
- base::SharedMemoryHandle handle,
- base::SyncSocket::TransitDescriptor socket_descriptor,
- uint32_t length);
-
- // Received when internal state of browser process' audio output device has
- // changed.
- void OnStreamStateChanged(int stream_id,
- media::AudioOutputIPCDelegateState state);
-
// IPC sender for Send(); must only be accessed on |io_task_runner_|.
IPC::Sender* sender_;
// A map of stream ids to delegates; must only be accessed on
// |io_task_runner_|.
IDMap<media::AudioOutputIPCDelegate> delegates_;
+ std::map<int, scoped_refptr<content::AudioOutputClient>>
+ audio_output_clients_;
// Task runner on which IPC calls are executed.
const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
« no previous file with comments | « content/content_tests.gypi ('k') | content/renderer/media/audio_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698