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

Side by Side Diff: media/mojo/services/mojo_audio_renderer_sink_adapter.h

Issue 2640003002: Implement MojoAudioRendererSink and use it in UtilityMojoMediaClient (Closed)
Patch Set: Rebase Created 3 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef MEDIA_MOJO_SERVICES_MOJO_AUDIO_RENDERER_SINK_ADAPTER_H_
6 #define MEDIA_MOJO_SERVICES_MOJO_AUDIO_RENDERER_SINK_ADAPTER_H_
7
8 #include "media/base/audio_renderer_sink.h"
9 #include "media/mojo/interfaces/audio_renderer_sink.mojom.h"
10 #include "media/mojo/services/media_mojo_export.h"
11 #include "mojo/public/cpp/bindings/binding.h"
12
13 namespace media {
14
15 class SingleThreadTaskRunner;
16
17 class MEDIA_MOJO_EXPORT MojoAudioRendererSinkAdapter
18 : public media::AudioRendererSink,
19 public mojom::AudioRendererSinkRenderCallback {
20 public:
21 MojoAudioRendererSinkAdapter(const std::string& audio_device_id);
22
23 void SetClient(mojom::AudioRendererSinkPtr sink);
24
25 // AudioRendererSink implementation.
26 void Initialize(const media::AudioParameters& params,
27 media::AudioRendererSink::RenderCallback* callback) override;
28 void Start() override;
29 void Stop() override;
30 void Pause() override;
31 void Play() override;
32 bool SetVolume(double volume) override;
33 media::OutputDeviceInfo GetOutputDeviceInfo() override;
34 bool CurrentThreadIsRenderingThread() override;
35
36 // mojom::AudioRendererSinkRenderCallback implementation.
37 void Render(
38 base::TimeDelta delay,
39 base::TimeTicks delay_timestamp,
40 int prior_frames_skipped,
41 const media::mojom::AudioRendererSinkRenderCallback::RenderCallback&
42 callback) final;
43 void OnRenderError() final;
44
45 protected:
46 ~MojoAudioRendererSinkAdapter() override;
47
48 private:
49 mojo::Binding<mojom::AudioRendererSinkRenderCallback> binding_;
50 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
51 std::string audio_device_id_;
52 bool started_;
53 media::AudioRendererSink::RenderCallback* render_callback_;
54 mojom::AudioRendererSinkPtr sink_;
55 std::unique_ptr<AudioBus> audio_bus_;
56 };
57
58 } // namespace media
59
60 #endif // MEDIA_MOJO_SERVICES_MOJO_AUDIO_RENDERER_SINK_ADAPTER_H_
OLDNEW
« no previous file with comments | « media/mojo/services/media_service_unittest.cc ('k') | media/mojo/services/mojo_audio_renderer_sink_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698