Index: media/audio/linux/alsa_wrapper.cc |
diff --git a/media/audio/linux/alsa_wrapper.cc b/media/audio/linux/alsa_wrapper.cc |
index 67331b4b17d407dcfacb4c6942ed54f77505105f..c1ce359b303fdb0e8975ab5db51a1a1ee2597c6b 100644 |
--- a/media/audio/linux/alsa_wrapper.cc |
+++ b/media/audio/linux/alsa_wrapper.cc |
@@ -71,76 +71,17 @@ const char* AlsaWrapper::PcmName(snd_pcm_t* handle) { |
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, |