summaryrefslogtreecommitdiffstats
path: root/audio/filter/af_scaletempo.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-03-21 00:58:05 +0100
committerwm4 <wm4@nowhere>2013-04-13 04:21:27 +0200
commitfc24ab9298ff155ad94171c1b8f16f4da422376c (patch)
treed7abfad1c1c08fc972dd643959294aa2294c2c0c /audio/filter/af_scaletempo.c
parent8bf759e888249e57ea8e786a368e0068a24838dc (diff)
downloadmpv-fc24ab9298ff155ad94171c1b8f16f4da422376c.tar.bz2
mpv-fc24ab9298ff155ad94171c1b8f16f4da422376c.tar.xz
audio/filter: replace pointless memcpys with assignments
The change in af_scaletempo actually fixes a memory leak. af->data contained a pointer to an allocated buffer, which was overwritten during format negotiation. Set the format explicitly instead.
Diffstat (limited to 'audio/filter/af_scaletempo.c')
-rw-r--r--audio/filter/af_scaletempo.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/audio/filter/af_scaletempo.c b/audio/filter/af_scaletempo.c
index cf326fedfb..657fd7f712 100644
--- a/audio/filter/af_scaletempo.c
+++ b/audio/filter/af_scaletempo.c
@@ -305,7 +305,10 @@ static int control(struct af_instance* af, int cmd, void* arg)
if (s->scale == 1.0) {
if (s->speed_tempo && s->speed_pitch)
return AF_DETACH;
- memcpy(af->data, data, sizeof(struct mp_audio));
+ af->data->format = data->format;
+ af->data->nch = data->nch;
+ af->data->rate = data->rate;
+ af->data->bps = data->bps;
af->delay = 0;
af->mul = 1;
return af_test_output(af, data);