[FFmpeg-devel] [PATCH 04/10] libavcodec/ccaption_dec: reap_screen after flipping on EOC

Aman Gupta aman at tmm1.net
Thu Jan 7 01:44:32 CET 2016


Probably should have written a longer commit message here. The EOC command
stands for "end of caption" aka "display buffer". It's used with POPON
mode, where characters are written to an off-screen buffer and EOC flips
the buffers to display what has been written so far. Thus, it makes sense
to reap the screen *after* flipping the active screen, not *before*.

The previous behavior was simply wrong, but masked by other bugs also fixed
in this patchset.

Aman

On Tue, Jan 5, 2016 at 11:41 PM, Aman Gupta <ffmpeg at tmm1.net> wrote:

> From: Aman Gupta <aman at tmm1.net>
>
> ---
>  libavcodec/ccaption_dec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
> index 9f17e77..5d4c568 100644
> --- a/libavcodec/ccaption_dec.c
> +++ b/libavcodec/ccaption_dec.c
> @@ -399,9 +399,9 @@ static void handle_erase(CCaptionSubContext *ctx, int
> n_screen)
>
>  static void handle_eoc(CCaptionSubContext *ctx)
>  {
> -    reap_screen(ctx);
>      ctx->active_screen = !ctx->active_screen;
>      ctx->cursor_column = 0;
> +    reap_screen(ctx);
>  }
>
>  static void handle_delete_end_of_row(CCaptionSubContext *ctx, char hi,
> char lo)
> --
> 2.5.3
>
>


More information about the ffmpeg-devel mailing list