From 02ad827226fcf7fd22793acc0a49ed17f099f1ef Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 9 Aug 2022 11:08:12 +0200 Subject: avcodec/mpegvideo_dec: Combine two loops (I think the check for !reference is unnecessary.) Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_dec.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c index 406c3feacf..5b37e79e36 100644 --- a/libavcodec/mpegvideo_dec.c +++ b/libavcodec/mpegvideo_dec.c @@ -279,12 +279,12 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) ff_mpeg_unref_picture(s->avctx, s->last_picture_ptr); } - /* release forgotten pictures */ - /* if (MPEG-124 / H.263) */ + /* release non reference/forgotten frames */ for (int i = 0; i < MAX_PICTURE_COUNT; i++) { - if (&s->picture[i] != s->last_picture_ptr && - &s->picture[i] != s->next_picture_ptr && - s->picture[i].reference && !s->picture[i].needs_realloc) { + if (!s->picture[i].reference || + (&s->picture[i] != s->last_picture_ptr && + &s->picture[i] != s->next_picture_ptr && + !s->picture[i].needs_realloc)) { ff_mpeg_unref_picture(s->avctx, &s->picture[i]); } } @@ -293,12 +293,6 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) ff_mpeg_unref_picture(s->avctx, &s->last_picture); ff_mpeg_unref_picture(s->avctx, &s->next_picture); - /* release non reference frames */ - for (int i = 0; i < MAX_PICTURE_COUNT; i++) { - if (!s->picture[i].reference) - ff_mpeg_unref_picture(s->avctx, &s->picture[i]); - } - if (s->current_picture_ptr && !s->current_picture_ptr->f->buf[0]) { // we already have an unused image // (maybe it was set before reading the header) -- cgit v1.2.3