]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ass.c
cavsdec: switch to av_assert
[ffmpeg] / libavcodec / ass.c
index 8c94d724ebe12f9e8090edf5b2c74731f2f8dac3..6f1719bc5e69c1ae8d55d19383ff38534794bcf3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * SSA/ASS common funtions
+ * SSA/ASS common functions
  * Copyright (c) 2010  Aurelien Jacobs <aurel@gnuage.org>
  *
  * This file is part of FFmpeg.
@@ -38,7 +38,7 @@ int ff_ass_subtitle_header(AVCodecContext *avctx,
              "Style: Default,%s,%d,&H%x,&H%x,&H%x,&H%x,%d,%d,%d,1,1,0,%d,10,10,10,0,0\r\n"
              "\r\n"
              "[Events]\r\n"
-             "Format: Layer, Start, End, Text\r\n",
+             "Format: Layer, Start, End, Style, Text\r\n",
              font, font_size, color, color, back_color, back_color,
              -bold, -italic, -underline, alignment);
 
@@ -70,16 +70,19 @@ static int ts_to_string(char *str, int strlen, int ts)
 }
 
 int ff_ass_add_rect(AVSubtitle *sub, const char *dialog,
-                    int ts_start, int ts_end, int raw)
+                    int ts_start, int duration, int raw)
 {
-    int len = 0, dlen, duration = ts_end - ts_start;
+    int len = 0, dlen;
     char s_start[16], s_end[16], header[48] = {0};
     AVSubtitleRect **rects;
 
     if (!raw) {
         ts_to_string(s_start, sizeof(s_start), ts_start);
-        ts_to_string(s_end,   sizeof(s_end),   ts_end  );
-        len = snprintf(header, sizeof(header), "Dialogue: 0,%s,%s,",
+        if (duration == -1)
+            snprintf(s_end, sizeof(s_end), "9:59:59.99");
+        else
+            ts_to_string(s_end, sizeof(s_end), ts_start + duration);
+        len = snprintf(header, sizeof(header), "Dialogue: 0,%s,%s,Default,",
                        s_start, s_end);
     }