mirror of
https://github.com/mpv-player/mpv
synced 2025-03-09 23:58:06 +00:00
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
This commit is contained in:
parent
d95be058ad
commit
34402c3cf2
15
libass/ass.c
15
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* format = strdup(track->event_format);
|
||||||
char* q = format; // format scanning pointer
|
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) {
|
for (i = 0; i < n_ignored; ++i) {
|
||||||
NEXT(q, tname);
|
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)
|
void ass_process_codec_private(ass_track_t* track, char *data, int size)
|
||||||
{
|
{
|
||||||
char* str = malloc(size + 1);
|
char* str = malloc(size + 1);
|
||||||
int sid;
|
|
||||||
|
|
||||||
memcpy(str, data, size);
|
memcpy(str, data, size);
|
||||||
str[size] = '\0';
|
str[size] = '\0';
|
||||||
@ -705,12 +712,6 @@ void ass_process_codec_private(ass_track_t* track, char *data, int size)
|
|||||||
process_text(track, str);
|
process_text(track, str);
|
||||||
free(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) {
|
if (!track->event_format) {
|
||||||
// probably an mkv produced by ancient mkvtoolnix
|
// probably an mkv produced by ancient mkvtoolnix
|
||||||
// such files don't have [Events] and Format: headers
|
// such files don't have [Events] and Format: headers
|
||||||
|
Loading…
Reference in New Issue
Block a user