#include "jacosub.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
+#include "libavutil/time_internal.h"
#undef time
time_t now = time(0);
struct tm ltime;
-#if HAVE_LOCALTIME_R
localtime_r(&now, <ime);
-#else
- ltime = *localtime(&now);
-#endif
strftime(buf, sizeof(buf), arg, <ime);
av_bprintf(dst, "%s", buf);
return 0;
if (i == FF_ARRAY_ELEMS(ass_codes_map))
av_bprintf(dst, "%c", *src++);
}
- av_bprintf(dst, "\r\n");
}
static int jacosub_decode_frame(AVCodecContext *avctx,
void *data, int *got_sub_ptr, AVPacket *avpkt)
{
+ int ret;
AVSubtitle *sub = data;
const char *ptr = avpkt->data;
if (*ptr) {
AVBPrint buffer;
- char *dec_sub;
// skip timers
ptr = jss_skip_whitespace(ptr);
av_bprint_init(&buffer, JSS_MAX_LINESIZE, JSS_MAX_LINESIZE);
jacosub_to_ass(avctx, &buffer, ptr);
- av_bprint_finalize(&buffer, &dec_sub);
- ff_ass_add_rect(sub, dec_sub, avpkt->pts, avpkt->duration, 0);
- av_free(dec_sub);
+ ret = ff_ass_add_rect_bprint(sub, &buffer, avpkt->pts, avpkt->duration);
+ av_bprint_finalize(&buffer, NULL);
+ if (ret < 0)
+ return ret;
}
end: