mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
Plug some memory leaks in the VP6 decoder
Originally committed as revision 22172 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
d7f5e520bf
commit
0a41faa9a7
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "vp56.h"
|
#include "vp56.h"
|
||||||
#include "vp56data.h"
|
#include "vp56data.h"
|
||||||
|
#include "get_bits.h"
|
||||||
|
|
||||||
|
|
||||||
void vp56_init_dequant(VP56Context *s, int quantizer)
|
void vp56_init_dequant(VP56Context *s, int quantizer)
|
||||||
@ -695,6 +696,7 @@ av_cold void vp56_init(AVCodecContext *avctx, int flip, int has_alpha)
|
|||||||
av_cold int vp56_free(AVCodecContext *avctx)
|
av_cold int vp56_free(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
VP56Context *s = avctx->priv_data;
|
VP56Context *s = avctx->priv_data;
|
||||||
|
int pt;
|
||||||
|
|
||||||
av_freep(&s->qscale_table);
|
av_freep(&s->qscale_table);
|
||||||
av_freep(&s->above_blocks);
|
av_freep(&s->above_blocks);
|
||||||
@ -706,5 +708,15 @@ av_cold int vp56_free(AVCodecContext *avctx)
|
|||||||
avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN2]);
|
avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN2]);
|
||||||
if (s->framep[VP56_FRAME_PREVIOUS]->data[0])
|
if (s->framep[VP56_FRAME_PREVIOUS]->data[0])
|
||||||
avctx->release_buffer(avctx, s->framep[VP56_FRAME_PREVIOUS]);
|
avctx->release_buffer(avctx, s->framep[VP56_FRAME_PREVIOUS]);
|
||||||
|
|
||||||
|
for (pt=0; pt < 2; pt++) {
|
||||||
|
int ct, cg;
|
||||||
|
free_vlc(&s->dccv_vlc[pt]);
|
||||||
|
free_vlc(&s->runv_vlc[pt]);
|
||||||
|
for (ct=0; ct<3; ct++)
|
||||||
|
for (cg = 0; cg < 6; cg++)
|
||||||
|
free_vlc(&s->ract_vlc[pt][ct][cg]);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -227,6 +227,7 @@ static void vp6_build_huff_tree(VP56Context *s, uint8_t coeff_model[],
|
|||||||
nodes[map[2*i+1]].count = b + !b;
|
nodes[map[2*i+1]].count = b + !b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free_vlc(vlc);
|
||||||
/* then build the huffman tree accodring to probabilities */
|
/* then build the huffman tree accodring to probabilities */
|
||||||
ff_huff_build_tree(s->avctx, vlc, size, nodes, vp6_huff_cmp,
|
ff_huff_build_tree(s->avctx, vlc, size, nodes, vp6_huff_cmp,
|
||||||
FF_HUFFMAN_FLAG_HNODE_FIRST);
|
FF_HUFFMAN_FLAG_HNODE_FIRST);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user