diff options
author | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-16 02:13:06 +0000 |
---|---|---|
committer | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-16 02:13:06 +0000 |
commit | 0883c2a9dd2c9e6beb06ab0d7a4eaf39974e964f (patch) | |
tree | ad8699d2bbaebfbf1b6ef1166e82b9be39467404 /media/audio/audio_io.h | |
parent | bf593b20669803e95073fbf57915800476d60da6 (diff) | |
download | chromium_src-0883c2a9dd2c9e6beb06ab0d7a4eaf39974e964f.zip chromium_src-0883c2a9dd2c9e6beb06ab0d7a4eaf39974e964f.tar.gz chromium_src-0883c2a9dd2c9e6beb06ab0d7a4eaf39974e964f.tar.bz2 |
Get PulseAudio implementation working.
- Switches from iterating the PA mainloop to a threaded mainloop
which PulseAudio runs on its own.
- Fixes several bugs and cleans up the code.
Performance is much better than ALSA. I'm able to run audio
output at 440 frames smoothly with Pulse whereas ALSA I
couldn't get it to run below 1k w/o glitching.
Sadly while the jitter is much better too, it's still not
as smooth as the 8k buffer we were using previously:
http://commondatastorage.googleapis.com/dalecurtis-shared/alsa-vs-pulse.png
Which means I still need to look into writing some clock
smoothing in order for us to turn on renderer side mixing.
Unit tests to come later, mostly just getting it working now.
BUG=32757
TEST=media_unittests / manual playback tests.
Review URL: https://codereview.chromium.org/11098031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168116 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/audio_io.h')
-rw-r--r-- | media/audio/audio_io.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/media/audio/audio_io.h b/media/audio/audio_io.h index bdc9f6f..cfc71bd 100644 --- a/media/audio/audio_io.h +++ b/media/audio/audio_io.h @@ -90,7 +90,8 @@ class MEDIA_EXPORT AudioOutputStream { virtual ~AudioOutputStream() {} - // Open the stream. false is returned if the stream cannot be opened. + // Open the stream. false is returned if the stream cannot be opened. Open() + // must always be followed by a call to Close() even if Open() fails. virtual bool Open() = 0; // Starts playing audio and generating AudioSourceCallback::OnMoreData(). |