diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index e4c4b832d8..fac506996d 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -274,12 +274,11 @@ static void roll_up(CCaptionSubContext *ctx) UNSET_FLAG(screen->row_used, ctx->cursor_row); } -static int reap_screen(CCaptionSubContext *ctx, int64_t pts) +static int capture_screen(CCaptionSubContext *ctx) { int i; int ret = 0; struct Screen *screen = ctx->screen + ctx->active_screen; - ctx->start_time = ctx->startv_time; av_bprint_clear(&ctx->buffer); for (i = 0; screen->row_used && i < SCREEN_ROWS; i++) @@ -304,9 +303,15 @@ static int reap_screen(CCaptionSubContext *ctx, int64_t pts) ctx->buffer.str[ctx->buffer.len] = 0; } ctx->buffer_changed = 1; + return ret; +} + +static int reap_screen(CCaptionSubContext *ctx, int64_t pts) +{ + ctx->start_time = ctx->startv_time; ctx->startv_time = pts; ctx->end_time = pts; - return ret; + return capture_screen(ctx); } static void handle_textattr(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo)