summaryrefslogtreecommitdiffstats
path: root/libao2
diff options
context:
space:
mode:
authoruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-01 05:17:08 +0000
committeruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-01 05:17:08 +0000
commita655984828a355ff85726587987d975105529cdb (patch)
treee411fdd2524144433e044d0b9293ddc3db4e3d12 /libao2
parent7e5c327c5a2c49c135dd4a75a527b78655bbc1fd (diff)
downloadmpv-a655984828a355ff85726587987d975105529cdb.tar.bz2
mpv-a655984828a355ff85726587987d975105529cdb.tar.xz
Fix ao_null with float samples
ao_null accepts float input, but the code calculating ao_data.bps only checked for 1-byte formats and used samplesize 2 for everything else. Because ao_null uses the bps value in its timing calculations this effectively made "playback" advance at half the correct speed. Fixed by calculating samplesize with af_fmt2bits() instead. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25223 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2')
-rw-r--r--libao2/ao_null.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libao2/ao_null.c b/libao2/ao_null.c
index 2f7aaeb656..fc81af6588 100644
--- a/libao2/ao_null.c
+++ b/libao2/ao_null.c
@@ -50,7 +50,7 @@ static int control(int cmd,void *arg){
// return: 1=success 0=fail
static int init(int rate,int channels,int format,int flags){
- int samplesize = (format == AF_FORMAT_U8 || format == AF_FORMAT_S8) ? 1: 2;
+ int samplesize = af_fmt2bits(format) / 8;
ao_data.outburst = 256 * channels * samplesize;
// A "buffer" for about 0.2 seconds of audio
ao_data.buffersize = (int)(rate * 0.2 / 256 + 1) * ao_data.outburst;