summaryrefslogtreecommitdiff
path: root/libavcodec/ccaption_dec.c
diff options
context:
space:
mode:
authorAman Gupta <aman@tmm1.net>2016-01-08 17:40:04 -0800
committerClément Bœsch <u@pkh.me>2016-01-09 11:53:37 +0100
commit23a50c8ab9fba5fe4310337db21d6c7eeb089323 (patch)
treef88138c6cca0bdd7369d36a46ba71a1026ae1fe6 /libavcodec/ccaption_dec.c
parent836c79351471246ccda5a5b2367095d98aa8c3fd (diff)
Revert "lavc/ccaption_dec: reap_screen is not necessary when clearing screen or buffer"
This reverts commit fe225b113b0553cdcf1a1d2fbdbe37c467d7951b.
Diffstat (limited to 'libavcodec/ccaption_dec.c')
-rw-r--r--libavcodec/ccaption_dec.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
index 517e2c0319..02bce01e2d 100644
--- a/libavcodec/ccaption_dec.c
+++ b/libavcodec/ccaption_dec.c
@@ -361,15 +361,17 @@ static void handle_pac(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo)
}
}
-static void handle_erase(CCaptionSubContext *ctx, int n_screen)
+static void handle_erase(CCaptionSubContext *ctx, int64_t pts, int n_screen)
{
struct Screen *screen = ctx->screen + n_screen;
+
+ reap_screen(ctx, pts);
screen->row_used = 0;
}
static void handle_eoc(CCaptionSubContext *ctx, int64_t pts)
{
- reap_screen(ctx, pts);
+ handle_erase(ctx, pts, ctx->active_screen);
ctx->active_screen = !ctx->active_screen;
ctx->cursor_column = 0;
}
@@ -450,7 +452,7 @@ static void process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint
break;
case 0x2c:
/* erase display memory */
- handle_erase(ctx, ctx->active_screen);
+ handle_erase(ctx, pts, ctx->active_screen);
break;
case 0x2d:
/* carriage return */
@@ -461,7 +463,7 @@ static void process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint
break;
case 0x2e:
/* erase non displayed memory */
- handle_erase(ctx, !ctx->active_screen);
+ handle_erase(ctx, pts, !ctx->active_screen);
break;
case 0x2f:
/* end of caption */