Mercurial > mplayer.hg
comparison libass/ass.c @ 23539:790efaddf175
Make sure there is at least one style in ass_track when parsing events.
Before it was only checked for embedded subtitles.
author | eugeni |
---|---|
date | Fri, 15 Jun 2007 22:15:27 +0000 |
parents | 7286d245bf33 |
children | d655edc9d107 |
comparison
equal
deleted
inserted
replaced
23538:d8982d45ce61 | 23539:790efaddf175 |
---|---|
268 int i; | 268 int i; |
269 ass_event_t* target = event; | 269 ass_event_t* target = event; |
270 | 270 |
271 char* format = strdup(track->event_format); | 271 char* format = strdup(track->event_format); |
272 char* q = format; // format scanning pointer | 272 char* q = format; // format scanning pointer |
273 | |
274 if (track->n_styles == 0) { | |
275 // add "Default" style to the end | |
276 // will be used if track does not contain a default style (or even does not contain styles at all) | |
277 int sid = ass_alloc_style(track); | |
278 track->styles[sid].Name = strdup("Default"); | |
279 track->styles[sid].FontName = strdup("Arial"); | |
280 } | |
273 | 281 |
274 for (i = 0; i < n_ignored; ++i) { | 282 for (i = 0; i < n_ignored; ++i) { |
275 NEXT(q, tname); | 283 NEXT(q, tname); |
276 } | 284 } |
277 | 285 |
695 CodecPrivate section contains [Stream Info] and [V4+ Styles] ([V4 Styles] for SSA) sections | 703 CodecPrivate section contains [Stream Info] and [V4+ Styles] ([V4 Styles] for SSA) sections |
696 */ | 704 */ |
697 void ass_process_codec_private(ass_track_t* track, char *data, int size) | 705 void ass_process_codec_private(ass_track_t* track, char *data, int size) |
698 { | 706 { |
699 char* str = malloc(size + 1); | 707 char* str = malloc(size + 1); |
700 int sid; | |
701 | 708 |
702 memcpy(str, data, size); | 709 memcpy(str, data, size); |
703 str[size] = '\0'; | 710 str[size] = '\0'; |
704 | 711 |
705 process_text(track, str); | 712 process_text(track, str); |
706 free(str); | 713 free(str); |
707 | 714 |
708 // add "Default" style to the end | |
709 // will be used if track does not contain a default style (or even does not contain styles at all) | |
710 sid = ass_alloc_style(track); | |
711 track->styles[sid].Name = strdup("Default"); | |
712 track->styles[sid].FontName = strdup("Arial"); | |
713 | |
714 if (!track->event_format) { | 715 if (!track->event_format) { |
715 // probably an mkv produced by ancient mkvtoolnix | 716 // probably an mkv produced by ancient mkvtoolnix |
716 // such files don't have [Events] and Format: headers | 717 // such files don't have [Events] and Format: headers |
717 track->parser_priv->state = PST_EVENTS; | 718 track->parser_priv->state = PST_EVENTS; |
718 if (track->track_type == TRACK_TYPE_SSA) | 719 if (track->track_type == TRACK_TYPE_SSA) |