Reject slices that does not have the same type than the first one in RV10/RV20 decoder.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 17 Sep 2011 22:17:44 +0000 (00:17 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 21 Sep 2011 18:56:53 +0000 (20:56 +0200)
This prevents crashes with some corrupted bitstreams.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d788af6cf696d547a442c47e1ce6f93bc9fc97b6)

libavcodec/rv10.c

index 2f822a8..b8cdf4a 100644 (file)
@@ -559,8 +559,12 @@ static int rv10_decode_packet(AVCodecContext *avctx,
         if(MPV_frame_start(s, avctx) < 0)
             return -1;
         ff_er_frame_start(s);
+    } else {
+        if (s->current_picture_ptr->f.pict_type != s->pict_type)
+            return -1;
     }
 
+
     av_dlog(avctx, "qscale=%d\n", s->qscale);
 
     /* default quantization values */