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

Unified Diff: media/mojo/clients/mojo_renderer.h

Issue 2640003002: Implement MojoAudioRendererSink and use it in UtilityMojoMediaClient (Closed)
Patch Set: Make sure to stop the audio sink. Also unbind from the audio device thread Created 3 years, 11 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: media/mojo/clients/mojo_renderer.h
diff --git a/media/mojo/clients/mojo_renderer.h b/media/mojo/clients/mojo_renderer.h
index a77b3d7ff050966b0daebf5cf806826ae1bdb0b1..f9f7ab39a9e2e4debe063fc87cf9802ebd9964d4 100644
--- a/media/mojo/clients/mojo_renderer.h
+++ b/media/mojo/clients/mojo_renderer.h
@@ -22,7 +22,9 @@ class SingleThreadTaskRunner;
namespace media {
+class AudioRendererSink;
class DemuxerStreamProvider;
+class MojoAudioRendererSinkImpl;
class MojoDemuxerStreamImpl;
class MojoVideoRendererSinkImpl;
class VideoOverlayFactory;
@@ -42,6 +44,7 @@ class MojoRenderer : public Renderer, public mojom::RendererClient {
public:
MojoRenderer(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
std::unique_ptr<VideoOverlayFactory> video_overlay_factory,
+ AudioRendererSink* audio_renderer_sink,
VideoRendererSink* video_renderer_sink,
mojom::RendererPtr remote_renderer);
~MojoRenderer() override;
@@ -100,6 +103,9 @@ class MojoRenderer : public Renderer, public mojom::RendererClient {
// Callback for connection error on |audio_stream_| and |video_stream_|.
void OnDemuxerStreamConnectionError(DemuxerStream::Type type);
+ // Callback for connection error on |mojo_audio_renderer_sink_|.
+ void OnAudioRendererSinkConnectionError();
+
// Callback for connection error on |mojo_video_renderer_sink_|.
void OnVideoRendererSinkConnectionError();
@@ -118,6 +124,8 @@ class MojoRenderer : public Renderer, public mojom::RendererClient {
// by the remote renderer.
std::unique_ptr<VideoOverlayFactory> video_overlay_factory_;
+ AudioRendererSink* audio_renderer_sink_ = nullptr;
+
// Video frame overlays are rendered onto this sink.
// Rendering of a new overlay is only needed when video natural size changes.
VideoRendererSink* video_renderer_sink_ = nullptr;
@@ -160,6 +168,7 @@ class MojoRenderer : public Renderer, public mojom::RendererClient {
base::DefaultTickClock media_clock_;
media::TimeDeltaInterpolator media_time_interpolator_;
+ std::unique_ptr<MojoAudioRendererSinkImpl> mojo_audio_renderer_sink_;
std::unique_ptr<MojoVideoRendererSinkImpl> mojo_video_renderer_sink_;
DISALLOW_COPY_AND_ASSIGN(MojoRenderer);

Powered by Google App Engine
This is Rietveld 408576698