aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-12-01 12:57:47 +0100
committerAnton Khirnov <anton@khirnov.net>2013-12-05 13:28:05 +0100
commit66499f34b56fc6a9fdef25543bd9d576fc787895 (patch)
tree864eab5f8a25da56ef1d735aebb8b166a8c852f4
parent58a868968df445068a143f327ced03b6a02baf0d (diff)
downloadffmpeg-66499f34b56fc6a9fdef25543bd9d576fc787895.tar.gz
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.
-rw-r--r--libavcodec/h261dec.c9
-rw-r--r--libavcodec/mss2.c7
-rw-r--r--libavcodec/vc1dec.c9
3 files changed, 0 insertions, 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;