mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-20 06:11:04 +00:00
fix memory leaks in vp3 decoder
Originally committed as revision 12191 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ac6f133027
commit
6f4e2b5a95
@ -2313,7 +2313,9 @@ if (!s->keyframe) {
|
|||||||
static int vp3_decode_end(AVCodecContext *avctx)
|
static int vp3_decode_end(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
Vp3DecodeContext *s = avctx->priv_data;
|
Vp3DecodeContext *s = avctx->priv_data;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
av_free(s->superblock_coding);
|
||||||
av_free(s->all_fragments);
|
av_free(s->all_fragments);
|
||||||
av_free(s->coeffs);
|
av_free(s->coeffs);
|
||||||
av_free(s->coded_fragment_list);
|
av_free(s->coded_fragment_list);
|
||||||
@ -2322,6 +2324,19 @@ static int vp3_decode_end(AVCodecContext *avctx)
|
|||||||
av_free(s->macroblock_fragments);
|
av_free(s->macroblock_fragments);
|
||||||
av_free(s->macroblock_coding);
|
av_free(s->macroblock_coding);
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++) {
|
||||||
|
free_vlc(&s->dc_vlc[i]);
|
||||||
|
free_vlc(&s->ac_vlc_1[i]);
|
||||||
|
free_vlc(&s->ac_vlc_2[i]);
|
||||||
|
free_vlc(&s->ac_vlc_3[i]);
|
||||||
|
free_vlc(&s->ac_vlc_4[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
free_vlc(&s->superblock_run_length_vlc);
|
||||||
|
free_vlc(&s->fragment_run_length_vlc);
|
||||||
|
free_vlc(&s->mode_code_vlc);
|
||||||
|
free_vlc(&s->motion_vector_vlc);
|
||||||
|
|
||||||
/* release all frames */
|
/* release all frames */
|
||||||
if (s->golden_frame.data[0] && s->golden_frame.data[0] != s->last_frame.data[0])
|
if (s->golden_frame.data[0] && s->golden_frame.data[0] != s->last_frame.data[0])
|
||||||
avctx->release_buffer(avctx, &s->golden_frame);
|
avctx->release_buffer(avctx, &s->golden_frame);
|
||||||
|
Loading…
Reference in New Issue
Block a user