OSDN Git Service

avcodec/srtdec: Check ff_htmlmarkup_to_ass() return code
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 5 May 2017 23:50:58 +0000 (01:50 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 8 May 2017 15:02:02 +0000 (17:02 +0200)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/srtdec.c

index 862ab47..ecc0801 100644 (file)
@@ -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;