diff --git a/libavcodec/srtdec.c b/libavcodec/srtdec.c index 862ab47645..ecc0801595 100644 --- a/libavcodec/srtdec.c +++ b/libavcodec/srtdec.c @@ -27,7 +27,7 @@ #include "ass.h" #include "htmlsubtitles.h" -static void srt_to_ass(AVCodecContext *avctx, AVBPrint *dst, +static int srt_to_ass(AVCodecContext *avctx, AVBPrint *dst, const char *in, int x1, int y1, int x2, int y2) { if (x1 >= 0 && y1 >= 0) { @@ -49,7 +49,7 @@ static void srt_to_ass(AVCodecContext *avctx, AVBPrint *dst, } } - ff_htmlmarkup_to_ass(avctx, dst, in); + return ff_htmlmarkup_to_ass(avctx, dst, in); } static int srt_decode_frame(AVCodecContext *avctx, @@ -74,8 +74,9 @@ static int srt_decode_frame(AVCodecContext *avctx, av_bprint_init(&buffer, 0, AV_BPRINT_SIZE_UNLIMITED); - srt_to_ass(avctx, &buffer, avpkt->data, x1, y1, x2, y2); - ret = ff_ass_add_rect(sub, buffer.str, s->readorder++, 0, NULL, NULL); + ret = srt_to_ass(avctx, &buffer, avpkt->data, x1, y1, x2, y2); + if (ret >= 0) + ret = ff_ass_add_rect(sub, buffer.str, s->readorder++, 0, NULL, NULL); av_bprint_finalize(&buffer, NULL); if (ret < 0) return ret;