summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-15 22:15:27 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-15 22:15:27 +0000
commit34402c3cf2d16239f3c055588b5814da884af0f6 (patch)
tree3fc39754898afd643b2fa974b7e8863cb40ce25e /libass
parentd95be058ade7cd2581f3fbfff24710ae616f3646 (diff)
downloadmpv-34402c3cf2d16239f3c055588b5814da884af0f6.tar.bz2
mpv-34402c3cf2d16239f3c055588b5814da884af0f6.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')
-rw-r--r--libass/ass.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/libass/ass.c b/libass/ass.c
index 95d935ce7f..8e638fdbac 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