[FFmpeg-cvslog] lavc/ccaption_dec: flush context on seek

Aman Gupta git at videolan.org
Thu Jan 14 22:09:30 CET 2016


ffmpeg | branch: master | Aman Gupta <aman at tmm1.net> | Tue Jan  5 21:46:27 2016 -0800| [260e3687173b24f20566da1cec4a3b4541d77fca] | committer: Clément Bœsch

lavc/ccaption_dec: flush context on seek

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=260e3687173b24f20566da1cec4a3b4541d77fca
---

 libavcodec/ccaption_dec.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
index ca497e5..6cb826c 100644
--- a/libavcodec/ccaption_dec.c
+++ b/libavcodec/ccaption_dec.c
@@ -173,6 +173,24 @@ 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->buffer_changed = 0;
+    av_bprint_clear(&ctx->buffer);
+}
+
 /**
  * @param ctx closed caption context just to print log
  */
@@ -578,6 +596,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,
 };



More information about the ffmpeg-cvslog mailing list