diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index 02bce01e2d039e1b8d96b3156e68d16ec8aeed18..bfdf511bfc7da684fc4be336f426bff10f72383c 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -361,9 +361,12 @@ static void handle_pac(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo) } } -static void handle_erase(CCaptionSubContext *ctx, int64_t pts, int n_screen) +/** + * @param pts it is required to set end time + */ +static void handle_edm(CCaptionSubContext *ctx, int64_t pts) { - struct Screen *screen = ctx->screen + n_screen; + struct Screen *screen = ctx->screen + ctx->active_screen; reap_screen(ctx, pts); screen->row_used = 0; @@ -371,7 +374,7 @@ static void handle_erase(CCaptionSubContext *ctx, int64_t pts, int n_screen) static void handle_eoc(CCaptionSubContext *ctx, int64_t pts) { - handle_erase(ctx, pts, ctx->active_screen); + handle_edm(ctx,pts); ctx->active_screen = !ctx->active_screen; ctx->cursor_column = 0; } @@ -452,7 +455,7 @@ static void process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint break; case 0x2c: /* erase display memory */ - handle_erase(ctx, pts, ctx->active_screen); + handle_edm(ctx, pts); break; case 0x2d: /* carriage return */ @@ -461,10 +464,6 @@ static void process_cc608(CCaptionSubContext *ctx, int64_t pts, uint8_t hi, uint roll_up(ctx); ctx->cursor_column = 0; break; - case 0x2e: - /* erase non displayed memory */ - handle_erase(ctx, pts, !ctx->active_screen); - break; case 0x2f: /* end of caption */ ff_dlog(ctx, "handle_eoc\n");