# HG changeset patch # User eugeni # Date 1181945727 0 # Node ID 790efaddf175a926159f40eb6913e64cdff8ead3 # Parent d8982d45ce611efda1cbd1eb3a95575c443a153c Make sure there is at least one style in ass_track when parsing events. Before it was only checked for embedded subtitles. diff -r d8982d45ce61 -r 790efaddf175 libass/ass.c --- a/libass/ass.c Fri Jun 15 14:38:12 2007 +0000 +++ b/libass/ass.c Fri Jun 15 22:15:27 2007 +0000 @@ -271,6 +271,14 @@ 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 @@ 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 @@ 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