Browse Source

ansi: erase screen on first frame

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.0
Peter Ross Michael Niedermayer 12 years ago
parent
commit
65a31a0de7
2 changed files with 8 additions and 3 deletions
  1. +5
    -0
      libavcodec/ansi.c
  2. +3
    -3
      tests/ref/fate/ansi

+ 5
- 0
libavcodec/ansi.c View File

@@ -58,6 +58,7 @@ typedef struct {
int attributes; /**< attribute flags */
int fg; /**< foreground color */
int bg; /**< background color */
int first_frame;

/* 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]);
if (!s->first_frame) {
erase_screen(avctx);
s->first_frame = 1;
}

while(buf < buf_end) {
switch(s->state) {


+ 3
- 3
tests/ref/fate/ansi View File

@@ -1,7 +1,7 @@
#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


Loading…
Cancel
Save