|
|
|
@ -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,7 +74,8 @@ 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 = 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) |
|
|
|
|