lavc/ccaption_dec: check for bprint completeness outside the loop

This commit is contained in:
Clément Bœsch 2016-01-09 12:40:28 +01:00
parent 31bff21d2c
commit 22765140fa
1 changed files with 3 additions and 10 deletions

View File

@ -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)