]> granicus.if.org Git - libass/commitdiff
Make sure there is at least one style in ass_track when parsing events.
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 15 Jun 2007 22:15:27 +0000 (22:15 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 15 Jun 2007 22:15:27 +0000 (22:15 +0000)
Before it was only checked for embedded subtitles.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23559 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass.c

index 95d935ce7f7fd80c974b92d38ec8d2121fefbd30..8e638fdbac46eb04780c8e76fabdb710892ee3c6 100644 (file)
@@ -271,6 +271,14 @@ static int process_event_tail(ass_track_t* track, ass_event_t* event, char* str,
        char* format = strdup(track->event_format);
        char* q = format; // format scanning pointer
 
+       if (track->n_styles == 0) {
+               // add "Default" style to the end
+               // will be used if track does not contain a default style (or even does not contain styles at all)
+               int sid = ass_alloc_style(track);
+               track->styles[sid].Name = strdup("Default");
+               track->styles[sid].FontName = strdup("Arial");
+       }
+
        for (i = 0; i < n_ignored; ++i) {
                NEXT(q, tname);
        }
@@ -697,7 +705,6 @@ static int process_text(ass_track_t* track, char* str)
 void ass_process_codec_private(ass_track_t* track, char *data, int size)
 {
        char* str = malloc(size + 1);
-       int sid;
 
        memcpy(str, data, size);
        str[size] = '\0';
@@ -705,12 +712,6 @@ void ass_process_codec_private(ass_track_t* track, char *data, int size)
        process_text(track, str);
        free(str);
 
-       // add "Default" style to the end
-       // will be used if track does not contain a default style (or even does not contain styles at all)
-       sid = ass_alloc_style(track);
-       track->styles[sid].Name = strdup("Default");
-       track->styles[sid].FontName = strdup("Arial");
-       
        if (!track->event_format) {
                // probably an mkv produced by ancient mkvtoolnix
                // such files don't have [Events] and Format: headers