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

Unified Diff: media/audio/linux/alsa_wrapper.cc

Issue 11030052: Merge 159680 - It seems that snd_pcm_hw_params_set_* API does not work well any more in the latest … (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1271/src/
Patch Set: Created 8 years, 2 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/audio/linux/alsa_wrapper.cc
===================================================================
--- media/audio/linux/alsa_wrapper.cc (revision 160378)
+++ media/audio/linux/alsa_wrapper.cc (working copy)
@@ -71,76 +71,17 @@
return snd_pcm_name(handle);
}
-int AlsaWrapper::ConfigureHwParams(snd_pcm_t* handle,
- snd_pcm_hw_params_t* hw_params,
- snd_pcm_format_t format,
- snd_pcm_access_t access,
- unsigned int channels,
- unsigned int rate,
- int soft_resample,
- unsigned int latency) {
- int err = 0;
- if ((err = snd_pcm_hw_params_any(handle, hw_params)) < 0)
- return err;
-
- if ((err = snd_pcm_hw_params_set_rate_resample(handle, hw_params,
- soft_resample)) < 0) {
- return err;
- }
-
- if ((err = snd_pcm_hw_params_set_format(handle, hw_params, format)) < 0)
- return err;
-
- int dir = 0;
- unsigned new_rate = rate;
- if ((err = snd_pcm_hw_params_set_rate_near(handle, hw_params,
- &new_rate, &dir)) < 0) {
- return err;
- }
-
- if ((err = snd_pcm_hw_params_set_access(handle, hw_params, access)) < 0)
- return err;
-
- if ((err = snd_pcm_hw_params_set_channels(handle, hw_params, channels)) < 0)
- return err;
-
- unsigned buffer_time = latency;
- if (buffer_time == 0) {
- if ((err = snd_pcm_hw_params_get_buffer_time_max(hw_params,
- &buffer_time, 0)) < 0) {
- return err;
- }
- if (buffer_time > 500000)
- buffer_time = 500000;
- }
-
- unsigned period_time = buffer_time / 4;
- if ((err = snd_pcm_hw_params_set_period_time_near(handle, hw_params,
- &period_time, 0)) < 0) {
- return err;
- }
-
- err = snd_pcm_hw_params_set_buffer_time_near(handle, hw_params,
- &buffer_time, 0);
- return err;
-}
-
int AlsaWrapper::PcmSetParams(snd_pcm_t* handle, snd_pcm_format_t format,
snd_pcm_access_t access, unsigned int channels,
unsigned int rate, int soft_resample,
unsigned int latency) {
- int err = 0;
- snd_pcm_hw_params_t* hw_params;
- if ((err = snd_pcm_hw_params_malloc(&hw_params)) < 0)
- return err;
-
- if ((err = ConfigureHwParams(handle, hw_params, format, access, channels,
- rate, soft_resample, latency)) >= 0) {
- err = snd_pcm_hw_params(handle, hw_params);
- }
-
- snd_pcm_hw_params_free(hw_params);
- return err;
+ return snd_pcm_set_params(handle,
+ format,
+ access,
+ channels,
+ rate,
+ soft_resample,
+ latency);
}
int AlsaWrapper::PcmGetParams(snd_pcm_t* handle, snd_pcm_uframes_t* buffer_size,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698