From 3a0e5cfcee5bcbf60e3830da0d03041de3f1e5f5 Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Tue, 12 Jan 2016 17:27:06 -0800 Subject: lavc/ccaption_dec: clear all unused rows during rollup Sometimes rollup captions can move around the screen. This fixes "ghost" captions from below the current rollup area from continuing to be captured when a rollup moves higher up on the screen. --- libavcodec/ccaption_dec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libavcodec') diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index 3e335804fa..330ea6ac59 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -294,8 +294,11 @@ static void roll_up(CCaptionSubContext *ctx) */ keep_lines = FFMIN(ctx->cursor_row + 1, ctx->rollup); - for (i = 0; i < ctx->cursor_row - keep_lines; i++) + for (i = 0; i < SCREEN_ROWS; i++) { + if (i > ctx->cursor_row - keep_lines && i <= ctx->cursor_row) + continue; UNSET_FLAG(screen->row_used, i); + } for (i = 0; i < keep_lines && screen->row_used; i++) { const int i_row = ctx->cursor_row - keep_lines + i + 1; -- cgit v1.2.3