From db6af88cd0fa2f874c938acfeefdae9a447af25b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <michael@niedermayer.cc> Date: Wed, 12 Sep 2018 02:14:47 +0200 Subject: [PATCH] avcodec/bintext: Use ff_get_buffer instead of ff_reget_buffer and simplify reget seems unneeded and it is slower Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/bintext.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c index b14a2a9c296..d85f2c2dd44 100644 --- a/libavcodec/bintext.c +++ b/libavcodec/bintext.c @@ -96,11 +96,6 @@ static av_cold int decode_init(AVCodecContext *avctx) if (avctx->width < FONT_WIDTH || avctx->height < s->font_height) return AVERROR_INVALIDDATA; - - s->frame = av_frame_alloc(); - if (!s->frame) - return AVERROR(ENOMEM); - return 0; } @@ -149,8 +144,9 @@ static int decode_frame(AVCodecContext *avctx, if ((avctx->width / FONT_WIDTH) * (avctx->height / s->font_height) / 256 > buf_size) return AVERROR_INVALIDDATA; + s->frame = data; s->x = s->y = 0; - if ((ret = ff_reget_buffer(avctx, s->frame)) < 0) + if ((ret = ff_get_buffer(avctx, s->frame, 0)) < 0) return ret; s->frame->pict_type = AV_PICTURE_TYPE_I; s->frame->palette_has_changed = 1; @@ -208,21 +204,10 @@ static int decode_frame(AVCodecContext *avctx, } } - if ((ret = av_frame_ref(data, s->frame)) < 0) - return ret; *got_frame = 1; return buf_size; } -static av_cold int decode_end(AVCodecContext *avctx) -{ - XbinContext *s = avctx->priv_data; - - av_frame_free(&s->frame); - - return 0; -} - #if CONFIG_BINTEXT_DECODER AVCodec ff_bintext_decoder = { .name = "bintext", @@ -231,7 +216,6 @@ AVCodec ff_bintext_decoder = { .id = AV_CODEC_ID_BINTEXT, .priv_data_size = sizeof(XbinContext), .init = decode_init, - .close = decode_end, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, }; @@ -244,7 +228,6 @@ AVCodec ff_xbin_decoder = { .id = AV_CODEC_ID_XBIN, .priv_data_size = sizeof(XbinContext), .init = decode_init, - .close = decode_end, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, }; @@ -257,7 +240,6 @@ AVCodec ff_idf_decoder = { .id = AV_CODEC_ID_IDF, .priv_data_size = sizeof(XbinContext), .init = decode_init, - .close = decode_end, .decode = decode_frame, .capabilities = AV_CODEC_CAP_DR1, }; -- GitLab