ansi: erase screen on first frame
authorPeter Ross <pross@xvid.org>
Sat, 1 Sep 2012 05:21:01 +0000 (15:21 +1000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 1 Sep 2012 13:23:39 +0000 (15:23 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/ansi.c
tests/ref/fate/ansi

index 6afd17c..3572500 100644 (file)
@@ -58,6 +58,7 @@ typedef struct {
     int attributes;       /**< attribute flags */
     int fg;               /**< foreground color */
     int bg;               /**< background color */
     int attributes;       /**< attribute flags */
     int fg;               /**< foreground color */
     int bg;               /**< background color */
+    int first_frame;
 
     /* ansi parser state machine */
     enum {
 
     /* ansi parser state machine */
     enum {
@@ -353,6 +354,10 @@ static int decode_frame(AVCodecContext *avctx,
     s->frame.pict_type           = AV_PICTURE_TYPE_I;
     s->frame.palette_has_changed = 1;
     set_palette((uint32_t *)s->frame.data[1]);
     s->frame.pict_type           = AV_PICTURE_TYPE_I;
     s->frame.palette_has_changed = 1;
     set_palette((uint32_t *)s->frame.data[1]);
+    if (!s->first_frame) {
+        erase_screen(avctx);
+        s->first_frame = 1;
+    }
 
     while(buf < buf_end) {
         switch(s->state) {
 
     while(buf < buf_end) {
         switch(s->state) {
index 6000105..78e853f 100644 (file)
@@ -1,7 +1,7 @@
 #tb 0: 1/25
 #tb 0: 1/25
-0,          0,          0,        1,   768000, 0xc4865718
-0,          1,          1,        1,   768000, 0x2c7de258
-0,          2,          2,        1,   768000, 0x0d6b8dc6
+0,          0,          0,        1,   768000, 0x772dd3d0
+0,          1,          1,        1,   768000, 0xd7dab1d1
+0,          2,          2,        1,   768000, 0x0e56f2d3
 0,          3,          3,        1,   768000, 0x11c1fb8e
 0,          4,          4,        1,   768000, 0x72d12da9
 0,          5,          5,        1,   768000, 0x39c7a70d
 0,          3,          3,        1,   768000, 0x11c1fb8e
 0,          4,          4,        1,   768000, 0x72d12da9
 0,          5,          5,        1,   768000, 0x39c7a70d