comparison vp56.c @ 11350:7d9a1a807e91 libavcodec

move vp6 huffman table freeing code, out of common vp56 code
author aurel
date Wed, 03 Mar 2010 22:29:06 +0000
parents 8d23ea397dda
children 7dd2a45249a9
comparison
equal deleted inserted replaced
11349:33f8308382f5 11350:7d9a1a807e91
24 #include "avcodec.h" 24 #include "avcodec.h"
25 #include "bytestream.h" 25 #include "bytestream.h"
26 26
27 #include "vp56.h" 27 #include "vp56.h"
28 #include "vp56data.h" 28 #include "vp56data.h"
29 #include "get_bits.h"
30 29
31 30
32 void vp56_init_dequant(VP56Context *s, int quantizer) 31 void vp56_init_dequant(VP56Context *s, int quantizer)
33 { 32 {
34 s->quantizer = quantizer; 33 s->quantizer = quantizer;
694 } 693 }
695 694
696 av_cold int vp56_free(AVCodecContext *avctx) 695 av_cold int vp56_free(AVCodecContext *avctx)
697 { 696 {
698 VP56Context *s = avctx->priv_data; 697 VP56Context *s = avctx->priv_data;
699 int pt;
700 698
701 av_freep(&s->qscale_table); 699 av_freep(&s->qscale_table);
702 av_freep(&s->above_blocks); 700 av_freep(&s->above_blocks);
703 av_freep(&s->macroblocks); 701 av_freep(&s->macroblocks);
704 av_freep(&s->edge_emu_buffer_alloc); 702 av_freep(&s->edge_emu_buffer_alloc);
706 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN]); 704 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN]);
707 if (s->framep[VP56_FRAME_GOLDEN2]->data[0]) 705 if (s->framep[VP56_FRAME_GOLDEN2]->data[0])
708 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN2]); 706 avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN2]);
709 if (s->framep[VP56_FRAME_PREVIOUS]->data[0]) 707 if (s->framep[VP56_FRAME_PREVIOUS]->data[0])
710 avctx->release_buffer(avctx, s->framep[VP56_FRAME_PREVIOUS]); 708 avctx->release_buffer(avctx, s->framep[VP56_FRAME_PREVIOUS]);
711
712 for (pt=0; pt < 2; pt++) {
713 int ct, cg;
714 free_vlc(&s->dccv_vlc[pt]);
715 free_vlc(&s->runv_vlc[pt]);
716 for (ct=0; ct<3; ct++)
717 for (cg = 0; cg < 6; cg++)
718 free_vlc(&s->ract_vlc[pt][ct][cg]);
719 }
720
721 return 0; 709 return 0;
722 } 710 }