Commit 080de371 authored by Aman Gupta's avatar Aman Gupta Committed by Clément Bœsch

lavc/ccaption_dec: extract capture_screen() for future use

unlike reap_screen(), capture_screen() can be used to populate buffer
without touching the timestamps. this is useful for upcoming commits
which implement a real time caption stream.
parent e521a32a
...@@ -274,12 +274,11 @@ static void roll_up(CCaptionSubContext *ctx) ...@@ -274,12 +274,11 @@ static void roll_up(CCaptionSubContext *ctx)
UNSET_FLAG(screen->row_used, ctx->cursor_row); 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 i;
int ret = 0; int ret = 0;
struct Screen *screen = ctx->screen + ctx->active_screen; struct Screen *screen = ctx->screen + ctx->active_screen;
ctx->start_time = ctx->startv_time;
av_bprint_clear(&ctx->buffer); av_bprint_clear(&ctx->buffer);
for (i = 0; screen->row_used && i < SCREEN_ROWS; i++) for (i = 0; screen->row_used && i < SCREEN_ROWS; i++)
...@@ -304,9 +303,15 @@ static int reap_screen(CCaptionSubContext *ctx, int64_t pts) ...@@ -304,9 +303,15 @@ static int reap_screen(CCaptionSubContext *ctx, int64_t pts)
ctx->buffer.str[ctx->buffer.len] = 0; ctx->buffer.str[ctx->buffer.len] = 0;
} }
ctx->buffer_changed = 1; 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->startv_time = pts;
ctx->end_time = pts; ctx->end_time = pts;
return ret; return capture_screen(ctx);
} }
static void handle_textattr(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo) static void handle_textattr(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment