[FFmpeg-devel] [PATCH v2 1/9] lavc/ccaption_dec: flush context on seek

Aman Gupta ffmpeg at tmm1.net
Wed Jan 13 02:54:03 CET 2016


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

> From: Aman Gupta <aman at tmm1.net>
>
> ---
>  libavcodec/ccaption_dec.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
> index ca497e5..a9dfc94 100644
> --- a/libavcodec/ccaption_dec.c
> +++ b/libavcodec/ccaption_dec.c
> @@ -173,6 +173,26 @@ static av_cold int close_decoder(AVCodecContext
> *avctx)
>      return 0;
>  }
>
> +static void flush_decoder(AVCodecContext *avctx)
> +{
> +    CCaptionSubContext *ctx = avctx->priv_data;
> +    ctx->screen[0].row_used = 0;
> +    ctx->screen[1].row_used = 0;
> +    ctx->prev_cmd[0] = 0;
> +    ctx->prev_cmd[1] = 0;
> +    ctx->mode = CCMODE_ROLLUP;
> +    ctx->rollup = 2;
> +    ctx->cursor_row = 0;
> +    ctx->cursor_column = 0;
> +    ctx->cursor_font = 0;
> +    ctx->cursor_color = 0;
> +    ctx->active_screen = 0;
> +    ctx->last_real_time = 0;
> +    ctx->screen_touched = 0;
>

I messed up a rebase here... these two fields weren't introduced until the
next commit.

I've re-rolled the patchset here with a fix:
https://github.com/tmm1/ffmpeg/compare/master...upstream-cc.patch


> +    ctx->buffer_changed = 0;
> +    av_bprint_clear(&ctx->buffer);
> +}
> +
>  /**
>   * @param ctx closed caption context just to print log
>   */
> @@ -578,6 +598,7 @@ AVCodec ff_ccaption_decoder = {
>      .priv_data_size = sizeof(CCaptionSubContext),
>      .init           = init_decoder,
>      .close          = close_decoder,
> +    .flush          = flush_decoder,
>      .decode         = decode,
>      .priv_class     = &ccaption_dec_class,
>  };
> --
> 2.5.3
>
>


More information about the ffmpeg-devel mailing list