From 66499f34b56fc6a9fdef25543bd9d576fc787895 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 1 Dec 2013 12:57:47 +0100 Subject: [PATCH] mpegvideo: do not set current_picture_ptr in decoders This code was originally added in 5f1948111a4920ff74e31b4284ab0200f7938539 to h263 to set decoded frame pts to some random numbers (removed in a1c5cc429d99216406170eac7e8352860076d3e8) and then cargo culted to other decoders. The code is left in h263dec for now, since some part of the decoder (apparently OBMC) relies on the specific previous frame to be reused. --- libavcodec/h261dec.c | 9 --------- libavcodec/mss2.c | 7 ------- libavcodec/vc1dec.c | 9 --------- 3 files changed, 25 deletions(-) diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index 4842fa0dd3..49eaee1989 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -584,15 +584,6 @@ retry: if (ff_MPV_common_init(s) < 0) return -1; - /* We need to set current_picture_ptr before reading the header, - * otherwise we cannot store anything in there. */ - if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) { - int i = ff_find_unused_picture(s, 0); - if (i < 0) - return i; - s->current_picture_ptr = &s->picture[i]; - } - ret = h261_decode_picture_header(h); /* skip if the header was thrashed */ diff --git a/libavcodec/mss2.c b/libavcodec/mss2.c index d219b67d33..3fe86203aa 100644 --- a/libavcodec/mss2.c +++ b/libavcodec/mss2.c @@ -377,13 +377,6 @@ static int decode_wmv9(AVCodecContext *avctx, const uint8_t *buf, int buf_size, ff_mpeg_flush(avctx); - if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) { - int i = ff_find_unused_picture(s, 0); - if (i < 0) - return i; - s->current_picture_ptr = &s->picture[i]; - } - init_get_bits(&s->gb, buf, buf_size * 8); s->loop_filter = avctx->skip_loop_filter < AVDISCARD_ALL; diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index ab4e098fac..141969f958 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -5914,15 +5914,6 @@ static int vc1_decode_frame(AVCodecContext *avctx, void *data, } } - /* We need to set current_picture_ptr before reading the header, - * otherwise we cannot store anything in there. */ - if (s->current_picture_ptr == NULL || s->current_picture_ptr->f.data[0]) { - int i = ff_find_unused_picture(s, 0); - if (i < 0) - goto err; - s->current_picture_ptr = &s->picture[i]; - } - // do parse frame header v->pic_header_flag = 0; v->first_pic_header_flag = 1;