Просмотр исходного кода

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.
Timo Rothenpieler 7 лет назад
Родитель
Сommit
7e76e1ea80
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      libavcodec/wmavoice.c

+ 4 - 0
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)