summaryrefslogtreecommitdiff
path: root/libavcodec/vp6.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-11 08:13:45 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-02-13 12:24:06 +0100
commit90e5eef73125d973df5610dc840a8a513a3b7915 (patch)
treee2d5f1d9b761223815dfb6ecd8f320ff05c109fb /libavcodec/vp6.c
parentfad5c6d743029d4941169f1de71d6207265e0498 (diff)
avcodec/vp6: Check initializing VP6A context
Reviewed-by: Peter Ross <pross@xvid.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/vp6.c')
-rw-r--r--libavcodec/vp6.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/vp6.c b/libavcodec/vp6.c
index d75e717082..95ed5eba0f 100644
--- a/libavcodec/vp6.c
+++ b/libavcodec/vp6.c
@@ -654,11 +654,12 @@ static av_cold int vp6_decode_init(AVCodecContext *avctx)
if (s->has_alpha) {
s->alpha_context = av_mallocz(sizeof(VP56Context));
if (!s->alpha_context) {
- ff_vp56_free(avctx);
return AVERROR(ENOMEM);
}
- ff_vp56_init_context(avctx, s->alpha_context,
- s->flip == -1, s->has_alpha);
+ ret = ff_vp56_init_context(avctx, s->alpha_context,
+ s->flip == -1, s->has_alpha);
+ if (ret < 0)
+ return ret;
ff_vp6dsp_init(&s->alpha_context->vp56dsp);
vp6_decode_init_context(s->alpha_context);
}
@@ -745,4 +746,5 @@ const AVCodec ff_vp6a_decoder = {
.close = vp6_decode_free,
.decode = ff_vp56_decode_frame,
.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};