summaryrefslogtreecommitdiffstats
path: root/libaf
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-06 11:39:13 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-03-06 11:39:13 +0000
commit33ca05bce930b4d5fa34b735f4edc61d52bcfa1a (patch)
tree9e47c5be1384d3d1690458678c941664d7f8ced8 /libaf
parent1dd64224c45a5f148a39d523582ab8e532a46a28 (diff)
downloadmpv-33ca05bce930b4d5fa34b735f4edc61d52bcfa1a.tar.bz2
mpv-33ca05bce930b4d5fa34b735f4edc61d52bcfa1a.tar.xz
Use a single malloc to allocate space for the circular buffers.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28845 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libaf')
-rw-r--r--libaf/af_resample.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libaf/af_resample.c b/libaf/af_resample.c
index ea628c7ae8..3698806fd5 100644
--- a/libaf/af_resample.c
+++ b/libaf/af_resample.c
@@ -181,9 +181,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
// Free space for circular buffers
if(s->xq){
- for(i=1;i<af->data->nch;i++)
- if(s->xq[i])
- free(s->xq[i]);
+ free(s->xq[0]);
free(s->xq);
s->xq = NULL;
}
@@ -218,8 +216,9 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
// Create space for circular buffers
s->xq = malloc(n->nch*sizeof(void*));
- for(i=0;i<n->nch;i++)
- s->xq[i] = malloc(2*L*af->data->bps);
+ s->xq[0] = malloc(n->nch*2*L*af->data->bps);
+ for(i=1;i<n->nch;i++)
+ s->xq[i] = (uint8_t *)s->xq[i-1] + 2*L*af->data->bps;
s->xi = 0;
// Check if the design needs to be redone