[FFmpeg-devel] [PATCH] In vc1 decoder, fix decoding when end sequence is present

Baptiste Coudurier baptiste.coudurier
Wed Mar 2 11:47:41 CET 2011


---
 libavcodec/vc1dec.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index ed92d8c..0f003e5 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -3149,6 +3149,7 @@ static int vc1_decode_frame(AVCodecContext *avctx,
     const uint8_t *buf_start = buf;
 
     /* no supplementary picture */
+ out:
     if (buf_size == 0) {
         /* special case for last picture */
         if (s->low_delay==0 && s->next_picture_ptr) {
@@ -3161,6 +3162,11 @@ static int vc1_decode_frame(AVCodecContext *avctx,
         return 0;
     }
 
+    if (buf_size == 4 && AV_RB32(buf) == VC1_CODE_ENDOFSEQ) {
+        buf_size = 0;
+        goto out;
+    }
+
     /* 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->data[0]){
-- 
1.7.4.1




More information about the ffmpeg-devel mailing list