diff options
author | cladisch <cladisch@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-02-10 09:18:27 +0000 |
---|---|---|
committer | cladisch <cladisch@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-02-10 09:18:27 +0000 |
commit | 7bb5f4e13874f62dc5dd1b51cbc81bd5062584b5 (patch) | |
tree | c1438c573ae0da480ffcc18e30f9e21c14f59b02 /libao2 | |
parent | 3f6e7ce5f5eb9d87f01eec90e0361b2b58c53a8b (diff) | |
download | mpv-7bb5f4e13874f62dc5dd1b51cbc81bd5062584b5.tar.bz2 mpv-7bb5f4e13874f62dc5dd1b51cbc81bd5062584b5.tar.xz |
This replaces the hardcoded numbers for the sample format widths with a
call to snd_pcm_format_physical_width().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17571 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2')
-rw-r--r-- | libao2/ao_alsa.c | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index 402f89264f..a541448721 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -545,37 +545,9 @@ static int init(int rate_hz, int channels, int format, int flags) return(0); } - ao_data.bps = ao_data.channels * ao_data.samplerate; - - //setting bw according to the input-format. resolution seems to be always s16_le or - //u16_le so 32bit is probably obsolet. - switch(alsa_format) - { - case SND_PCM_FORMAT_S8: - case SND_PCM_FORMAT_U8: - ao_data.bps *= 1; - break; - case SND_PCM_FORMAT_S16_LE: - case SND_PCM_FORMAT_U16_LE: - case SND_PCM_FORMAT_S16_BE: - case SND_PCM_FORMAT_U16_BE: - ao_data.bps *= 2; - break; - case SND_PCM_FORMAT_S32_LE: - case SND_PCM_FORMAT_S32_BE: - case SND_PCM_FORMAT_FLOAT_LE: - ao_data.bps *= 4; - break; - case -1: - mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: invalid format (%s) requested - output disabled\n",af_fmt2str_short(format)); - return(0); - break; - default: - ao_data.bps *= 2; - mp_msg(MSGT_AO,MSGL_WARN,"alsa-init: couldn't convert to right format. setting bps to: %d", ao_data.bps); - } - - bytes_per_sample = ao_data.bps / ao_data.samplerate; + bytes_per_sample = snd_pcm_format_physical_width(alsa_format) / 8; + bytes_per_sample *= ao_data.channels; + ao_data.bps = ao_data.samplerate * bytes_per_sample; #ifdef BUFFERTIME { |