diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2017-11-11 13:12:06 +0100 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2017-11-11 14:19:05 +0100 |
commit | 7e76e1ea80052ee95ef33d5341b9251b90766c9c (patch) | |
tree | 9ffb9bb3da0c18753edb41b4f6ae9ecdfd3e61bf | |
parent | 8dd73f68a6319d1784b33da9553671f1a0c197f9 (diff) | |
download | ffmpeg-7e76e1ea80052ee95ef33d5341b9251b90766c9c.tar.gz |
wmavoice: free frame before ff_get_buffer
synth_superframe can be called twice per call to decode_packet.
It is not fully clear if calling ff_get_buffer on the same frame twice
is supported, so unref the frame first to be save.
-rw-r--r-- | libavcodec/wmavoice.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c index 2ec4499981..3f86d0da35 100644 --- a/libavcodec/wmavoice.c +++ b/libavcodec/wmavoice.c @@ -1756,6 +1756,10 @@ static int synth_superframe(AVCodecContext *ctx, AVFrame *frame, stabilize_lsps(lsps[n], s->lsps); } + /* synth_superframe can run multiple times per packet + * free potential previous frame */ + av_frame_unref(frame); + /* get output buffer */ frame->nb_samples = MAX_SFRAMESIZE; if ((res = ff_get_buffer(ctx, frame, 0)) < 0) |