From 22765140fa676041a786e5973b11199badfa367c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Sat, 9 Jan 2016 12:40:28 +0100 Subject: [PATCH] lavc/ccaption_dec: check for bprint completeness outside the loop --- libavcodec/ccaption_dec.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index e84c4800c8..da7fb37671 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -283,7 +283,6 @@ static void roll_up(CCaptionSubContext *ctx) static int capture_screen(CCaptionSubContext *ctx) { int i; - int ret = 0; struct Screen *screen = ctx->screen + ctx->active_screen; enum cc_font prev_font = CCFONT_REGULAR; av_bprint_clear(&ctx->buffer); @@ -330,25 +329,19 @@ static int capture_screen(CCaptionSubContext *ctx) } } prev_font = font[j]; - av_bprintf(&ctx->buffer, "%s%s%c", e_tag, s_tag, row[j]); } - av_bprintf(&ctx->buffer, "\\N"); - ret = av_bprint_is_complete(&ctx->buffer); - if (ret == 0) { - ret = AVERROR(ENOMEM); - break; - } } - } + if (!av_bprint_is_complete(&ctx->buffer)) + return AVERROR(ENOMEM); if (screen->row_used && ctx->buffer.len >= 2) { ctx->buffer.len -= 2; ctx->buffer.str[ctx->buffer.len] = 0; } ctx->buffer_changed = 1; - return ret; + return 0; } static int reap_screen(CCaptionSubContext *ctx, int64_t pts)