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

Side by Side Diff: media/filters/reference_audio_renderer.h

Issue 9121062: Remove "high"-latency audio code path (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase ToT yet again Created 8 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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_FILTERS_REFERENCE_AUDIO_RENDERER_H_
6 #define MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_
7
8 // This is the reference implementation of AudioRenderer, which uses the audio
9 // interfaces to open an audio device. It cannot be used in the sandbox, but is
10 // used in other applications such as the test player.
11 //
12 // Note: THIS IS NOT THE AUDIO RENDERER USED IN CHROME.
13 //
14 // See src/content/renderer/media/audio_renderer_impl.h for chrome's
15 // implementation.
16
17 #include "media/audio/audio_output_controller.h"
18 #include "media/filters/audio_renderer_base.h"
19
20 class AudioManager;
21
22 namespace media {
23
24 class MEDIA_EXPORT ReferenceAudioRenderer
25 : public AudioRendererBase,
26 public AudioOutputController::EventHandler {
27 public:
28 explicit ReferenceAudioRenderer(AudioManager* audio_manager);
29 virtual ~ReferenceAudioRenderer();
30
31 // Filter implementation.
32 virtual void SetPlaybackRate(float playback_rate) OVERRIDE;
33
34 // AudioRenderer implementation.
35 virtual void SetVolume(float volume) OVERRIDE;
36
37 // AudioController::EventHandler implementation.
38 virtual void OnCreated(AudioOutputController* controller) OVERRIDE;
39 virtual void OnPlaying(AudioOutputController* controller) OVERRIDE;
40 virtual void OnPaused(AudioOutputController* controller) OVERRIDE;
41 virtual void OnError(AudioOutputController* controller,
42 int error_code) OVERRIDE;
43 virtual void OnMoreData(AudioOutputController* controller,
44 AudioBuffersState buffers_state) OVERRIDE;
45
46 protected:
47 // AudioRendererBase implementation.
48 virtual bool OnInitialize(int bits_per_channel,
49 ChannelLayout channel_layout,
50 int sample_rate) OVERRIDE;
51 virtual void OnStop() OVERRIDE;
52 virtual void OnRenderEndOfStream() OVERRIDE;
53
54 private:
55 scoped_refptr<AudioManager> audio_manager_;
56 int bytes_per_second_;
57 bool has_buffered_data_;
58
59 // Audio output controller.
60 scoped_refptr<media::AudioOutputController> controller_;
61
62 // Audio buffer.
63 int buffer_capacity_;
64 scoped_array<uint8> buffer_;
65
66 DISALLOW_COPY_AND_ASSIGN(ReferenceAudioRenderer);
67 };
68
69 } // namespace media
70
71 #endif // MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_
OLDNEW
« no previous file with comments | « media/audio/audio_output_controller_unittest.cc ('k') | media/filters/reference_audio_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698