diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-15 22:15:27 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-15 22:15:27 +0000 |
commit | 72decd0012d4ab5b8d3160d65e4142d36ffdb0d7 (patch) | |
tree | bf15322d0931b14ce6543595f954e815fdbae8b0 /libass/ass.c | |
parent | 25e78d5a4430cf8e3a8a88d96f92389406f892c0 (diff) | |
download | libass-72decd0012d4ab5b8d3160d65e4142d36ffdb0d7.tar.bz2 libass-72decd0012d4ab5b8d3160d65e4142d36ffdb0d7.tar.xz |
Make sure there is at least one style in ass_track when parsing events.
Before it was only checked for embedded subtitles.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23559 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass.c')
-rw-r--r-- | libass/ass.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libass/ass.c b/libass/ass.c index 95d935c..8e638fd 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -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 |