Message ID | AM7PR03MB6660FAE5AE58E62EE211D9DF8F2D9@AM7PR03MB6660.eurprd03.prod.outlook.com |
---|---|
State | Accepted |
Commit | 805d7414dcc0a0d4dc8796d8cb40e0c47e6bea36 |
Headers | show |
Series | [FFmpeg-devel] avcodec/cavsdec: Cleanup generically on init failure | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
Andreas Rheinhardt: > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> > --- > libavcodec/cavs.c | 4 +--- > libavcodec/cavsdec.c | 1 + > 2 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c > index e29d9c659b..5367c44248 100644 > --- a/libavcodec/cavs.c > +++ b/libavcodec/cavs.c > @@ -812,10 +812,8 @@ av_cold int ff_cavs_init(AVCodecContext *avctx) > h->cur.f = av_frame_alloc(); > h->DPB[0].f = av_frame_alloc(); > h->DPB[1].f = av_frame_alloc(); > - if (!h->cur.f || !h->DPB[0].f || !h->DPB[1].f) { > - ff_cavs_end(avctx); > + if (!h->cur.f || !h->DPB[0].f || !h->DPB[1].f) > return AVERROR(ENOMEM); > - } > > h->luma_scan[0] = 0; > h->luma_scan[1] = 8; > diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c > index 894aa1b54a..54e1877bbd 100644 > --- a/libavcodec/cavsdec.c > +++ b/libavcodec/cavsdec.c > @@ -1319,4 +1319,5 @@ const AVCodec ff_cavs_decoder = { > .decode = cavs_decode_frame, > .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, > .flush = cavs_flush, > + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, > }; Will apply this patchset later tonight unless there are objections. - Andreas
diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c index e29d9c659b..5367c44248 100644 --- a/libavcodec/cavs.c +++ b/libavcodec/cavs.c @@ -812,10 +812,8 @@ av_cold int ff_cavs_init(AVCodecContext *avctx) h->cur.f = av_frame_alloc(); h->DPB[0].f = av_frame_alloc(); h->DPB[1].f = av_frame_alloc(); - if (!h->cur.f || !h->DPB[0].f || !h->DPB[1].f) { - ff_cavs_end(avctx); + if (!h->cur.f || !h->DPB[0].f || !h->DPB[1].f) return AVERROR(ENOMEM); - } h->luma_scan[0] = 0; h->luma_scan[1] = 8; diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c index 894aa1b54a..54e1877bbd 100644 --- a/libavcodec/cavsdec.c +++ b/libavcodec/cavsdec.c @@ -1319,4 +1319,5 @@ const AVCodec ff_cavs_decoder = { .decode = cavs_decode_frame, .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .flush = cavs_flush, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, };
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/cavs.c | 4 +--- libavcodec/cavsdec.c | 1 + 2 files changed, 2 insertions(+), 3 deletions(-)