- if (ts == -1) {
- av_bprintf(buf, "9:59:59.99,");
- } else {
- int h, m, s;
-
- h = ts/360000; ts -= 360000*h;
- m = ts/ 6000; ts -= 6000*m;
- s = ts/ 100; ts -= 100*s;
- av_bprintf(buf, "%d:%02d:%02d.%02d,", h, m, s, ts);
- }
-}
-
-int ff_ass_bprint_dialog(AVBPrint *buf, const char *dialog,
- int ts_start, int duration, int raw)
-{
- int dlen;
-
- if (!raw || raw == 2) {
- long int layer = 0;
-
- if (raw == 2) {
- /* skip ReadOrder */
- dialog = strchr(dialog, ',');
- if (!dialog)
- return AVERROR_INVALIDDATA;
- dialog++;
-
- /* extract Layer or Marked */
- layer = strtol(dialog, (char**)&dialog, 10);
- if (*dialog != ',')
- return AVERROR_INVALIDDATA;
- dialog++;
- }
- av_bprintf(buf, "Dialogue: %ld,", layer);
- insert_ts(buf, ts_start);
- insert_ts(buf, duration == -1 ? -1 : ts_start + duration);
- if (raw != 2)
- av_bprintf(buf, "Default,,0,0,0,,");
- }
-
- dlen = strcspn(dialog, "\n");
- dlen += dialog[dlen] == '\n';
-
- av_bprintf(buf, "%.*s", dlen, dialog);
- if (raw == 2)
- av_bprintf(buf, "\r\n");
-
- return dlen;
+ return av_asprintf("%d,%d,%s,%s,0,0,0,,%s",
+ readorder, layer, style ? style : "Default",
+ speaker ? speaker : "", text);