mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
lavc/ccaption_dec: check for bprint completeness outside the loop
This commit is contained in:
parent
31bff21d2c
commit
22765140fa
@ -283,7 +283,6 @@ static void roll_up(CCaptionSubContext *ctx)
|
|||||||
static int capture_screen(CCaptionSubContext *ctx)
|
static int capture_screen(CCaptionSubContext *ctx)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int ret = 0;
|
|
||||||
struct Screen *screen = ctx->screen + ctx->active_screen;
|
struct Screen *screen = ctx->screen + ctx->active_screen;
|
||||||
enum cc_font prev_font = CCFONT_REGULAR;
|
enum cc_font prev_font = CCFONT_REGULAR;
|
||||||
av_bprint_clear(&ctx->buffer);
|
av_bprint_clear(&ctx->buffer);
|
||||||
@ -330,25 +329,19 @@ static int capture_screen(CCaptionSubContext *ctx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
prev_font = font[j];
|
prev_font = font[j];
|
||||||
|
|
||||||
av_bprintf(&ctx->buffer, "%s%s%c", e_tag, s_tag, row[j]);
|
av_bprintf(&ctx->buffer, "%s%s%c", e_tag, s_tag, row[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
av_bprintf(&ctx->buffer, "\\N");
|
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) {
|
if (screen->row_used && ctx->buffer.len >= 2) {
|
||||||
ctx->buffer.len -= 2;
|
ctx->buffer.len -= 2;
|
||||||
ctx->buffer.str[ctx->buffer.len] = 0;
|
ctx->buffer.str[ctx->buffer.len] = 0;
|
||||||
}
|
}
|
||||||
ctx->buffer_changed = 1;
|
ctx->buffer_changed = 1;
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reap_screen(CCaptionSubContext *ctx, int64_t pts)
|
static int reap_screen(CCaptionSubContext *ctx, int64_t pts)
|
||||||
|
Loading…
Reference in New Issue
Block a user