summaryrefslogtreecommitdiffstats
path: root/libao2
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-11 20:32:42 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-11 20:32:42 +0000
commit023340d6bdc6d05d2034400279b9ed18549445b3 (patch)
tree988d3bed02803aba8cb6924f2beb68f924b83c26 /libao2
parent1b4cd62e0b44ae91a9aec5020f31265753cb84a7 (diff)
downloadmpv-023340d6bdc6d05d2034400279b9ed18549445b3.tar.bz2
mpv-023340d6bdc6d05d2034400279b9ed18549445b3.tar.xz
Slightly simplify read_buffer code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25675 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2')
-rw-r--r--libao2/ao_jack.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libao2/ao_jack.c b/libao2/ao_jack.c
index a3252d93fb..54ec804f58 100644
--- a/libao2/ao_jack.c
+++ b/libao2/ao_jack.c
@@ -136,18 +136,18 @@ static int write_buffer(unsigned char* data, int len) {
static int read_buffer(float **bufs, int cnt, int num_bufs) {
int buffered = buf_used();
int i, j;
- int orig_cnt = cnt;
- if (cnt * sizeof(float) * num_bufs > buffered)
+ if (cnt * sizeof(float) * num_bufs > buffered) {
+ int orig_cnt = cnt;
cnt = buffered / sizeof(float) / num_bufs;
+ for (i = 0; i < num_bufs; i++)
+ memset(&bufs[i][cnt], 0, (orig_cnt - cnt) * sizeof(float));
+ }
for (i = 0; i < cnt; i++) {
for (j = 0; j < num_bufs; j++) {
- bufs[j][i] = *((float *)(&buffer[read_pos]));
+ bufs[j][i] = *(float *)&buffer[read_pos];
read_pos = (read_pos + sizeof(float)) % BUFFSIZE;
}
}
- for (i = cnt; i < orig_cnt; i++)
- for (j = 0; j < num_bufs; j++)
- bufs[j][i] = 0;
return cnt;
}