aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorAurelien Jacobs <aurel@gnuage.org>2010-03-03 22:29:06 +0000
committerAurelien Jacobs <aurel@gnuage.org>2010-03-03 22:29:06 +0000
commitded2100e48cfbf23bcc367a0b215776d5f621419 (patch)
treea5cf98481285953f66cc797d41b72da0d31466ba /libavcodec
parent68b0fd7c685f8db4842f3509a8b47d33e74f6e50 (diff)
downloadffmpeg-ded2100e48cfbf23bcc367a0b215776d5f621419.tar.gz
move vp6 huffman table freeing code, out of common vp56 code
Originally committed as revision 22186 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/vp56.c12
-rw-r--r--libavcodec/vp6.c23
2 files changed, 20 insertions, 15 deletions
diff --git a/libavcodec/vp56.c b/libavcodec/vp56.c
index dd8f05a8c3..63055f5059 100644
--- a/libavcodec/vp56.c
+++ b/libavcodec/vp56.c
@@ -26,7 +26,6 @@
#include "vp56.h"
#include "vp56data.h"
-#include "get_bits.h"
void vp56_init_dequant(VP56Context *s, int quantizer)
@@ -696,7 +695,6 @@ av_cold void vp56_init(AVCodecContext *avctx, int flip, int has_alpha)
av_cold int vp56_free(AVCodecContext *avctx)
{
VP56Context *s = avctx->priv_data;
- int pt;
av_freep(&s->qscale_table);
av_freep(&s->above_blocks);
@@ -708,15 +706,5 @@ av_cold int vp56_free(AVCodecContext *avctx)
avctx->release_buffer(avctx, s->framep[VP56_FRAME_GOLDEN2]);
if (s->framep[VP56_FRAME_PREVIOUS]->data[0])
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;
}
diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c
index 8bb60ede27..b3dd80ffbf 100644
--- a/libavcodec/vp6.c
+++ b/libavcodec/vp6.c
@@ -602,6 +602,23 @@ static av_cold int vp6_decode_init(AVCodecContext *avctx)
return 0;
}
+static av_cold int vp6_decode_free(AVCodecContext *avctx)
+{
+ VP56Context *s = avctx->priv_data;
+ int pt, ct, cg;
+
+ vp56_free(avctx);
+
+ for (pt=0; pt<2; pt++) {
+ 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;
+}
+
AVCodec vp6_decoder = {
"vp6",
CODEC_TYPE_VIDEO,
@@ -609,7 +626,7 @@ AVCodec vp6_decoder = {
sizeof(VP56Context),
vp6_decode_init,
NULL,
- vp56_free,
+ vp6_decode_free,
vp56_decode_frame,
CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("On2 VP6"),
@@ -623,7 +640,7 @@ AVCodec vp6f_decoder = {
sizeof(VP56Context),
vp6_decode_init,
NULL,
- vp56_free,
+ vp6_decode_free,
vp56_decode_frame,
CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version)"),
@@ -637,7 +654,7 @@ AVCodec vp6a_decoder = {
sizeof(VP56Context),
vp6_decode_init,
NULL,
- vp56_free,
+ vp6_decode_free,
vp56_decode_frame,
CODEC_CAP_DR1,
.long_name = NULL_IF_CONFIG_SMALL("On2 VP6 (Flash version, with alpha channel)"),