| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Fixes "[ARR] Musashi no Ken - 01 [AVC][5697986B].ssa", which has
timestamps like "00:02:30.85". It starts with 2 zeros instead of one,
which probably means it's an invalid file, but it's accepted by various
other parsers (VSFilter, MPlayer, vlc, ffmpeg).
|
|
|
|
| |
Similar to xy-VSFilter.
|
|
|
|
|
|
|
| |
Somewhat stolen from:
https://github.com/Cyberbeing/xy-VSFilter/blob/xy_sub_filter_rc3/src/subtitles/RTS.cpp#L2004
(xy-VSFilter started work on this in commit 014da6d9766417d7886eb867c9f2c14038f2a226)
|
|
|
|
|
|
|
|
| |
Add tons of ASS_OVERRIDE_ flags, which control whether certain ASS_Style
fields are copied when doing selective style overrides with
ass_set_selective_style_override_enabled().
This comes with some cleanup. It should be fully backwards-compatible.
|
|
|
|
|
|
|
|
| |
"Bold" should obviously be taken from the script's style, like it's done
with StrikeOut and Underline.
treat_fontname_as_pattern is specific to the font, and thus should be
taken from the same style as the font (the override style).
|
|
|
|
|
|
| |
I don't know why it was done this way, but some fields were always taken
from the event's style, instead of the (possibly different) \r style.
Undo this, as it seems like an unnecessary complication.
|
|
|
|
| |
Fixes #161
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Now pre- and post-combining operations are clearly separated,
many parameters in cache keys are no longer necessary due to that.
Also an ambiguous (in case of multiple fonts) text string is replaced
with a list of direct bitmap references in composite cache key.
Fixes #153.
Fixes #82.
|
| |
|
|
|
|
|
|
| |
Our public headers can be #included from C++. Hence, ass.h needs
an extern "C" guard to declare the correct linkage for functions.
ass_types.h only defines types, so it does not need a guard.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
HarfBuzz faces reference the FreeType faces. Destroying FT faces first can cause crash in HB destruction code:
https://bugs.freedesktop.org/show_bug.cgi?id=86300
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Or at least it looks like it does.
|
|
|
|
|
|
|
|
|
|
| |
This was a check for the realloc() call, but the result was never
used in the success case - which makes no sense.
Doesn't really matter, because it's the legacy charset code which
hopefully is not used by anyone.
Found by Coverity.
|
|
|
|
|
| |
Also add the obnoxious Coverity badge to the README
(thanks to torque for the reminder).
|
|
|
|
|
|
|
| |
Strictly use the default compiler, but this probably has exactly the
same effect as using the "gcc" entry.
Do a parallel build.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Switching to OSX, because homebrew is more uptodate than
Ubuntu Ancient LTS, which is what Travis uses on Linux.
|
|
|
|
| |
OK, so autogen.sh doesn't run configure.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Don't crash if running out of memory when allocating per-glyph data
during shaping. Also some fixes to initialization.
The caller of ass_fontconfig.c/match_fullname() actually handles a NULL
return value correctly.
|
|
|
|
| |
In both cases, fallback to doing nothing if alloc fails.
|
|
|
|
|
|
|
|
|
|
| |
Use strndup() instead of malloc+copy.
Make all code deal with the possibility that ASS_Drawing.text can be
NULL (which can happen on allocation failure).
Skip fix_collisions() on malloc failure - the lines will overlap, but at
least libass won't crash.
|
|
|
|
|
| |
This standard function is not available everywhere, so we detect it and
provide a fallback if missing.
|
| |
|
| |
|
|
|
|
|
|
| |
Much of outline_to_bitmap() is duplicated. What?
Add the overflow check to duplicated code too.
|
|
|
|
|
|
| |
Seriously...
Checking for negative values might not be needed, but do it anyway.
|
|
|
|
|
|
|
|
| |
This actually fixes #146.
The overflow check itself is obvious. Also, make ass_align() return an
unaligned value if aligning it would overflow. This is probably better,
as it for example makes the overflow check in the caller simpler.
|
| |
|
|
|
|
|
| |
The split doesn't necessarily follow any logic; for the most part
it just moves each processing loop into its own function.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Commit 8536eaa was slightly broken: for some incomprehensible reason,
(w + 1) memory instead of w is needed. The missing space could lead to
memory corruption and crashes.
|
|
|
|
| |
Mainly cosmetic, but maybe some optimizations the compiler misses.
|
|
|
|
|
| |
Add * suffix to executable names for the sake of Windows,
where they get .exe extension automatically appended.
|
|
|
|
| |
Also fix that ass_synth_init() could deref NULL.
|
| |
|
|
|
|
| |
Put all code into one place, which makes it easier to follow.
|
|
|
|
| |
This still doesn't catch all cases.
|
|
|
|
| |
Helps with overflow and allocation failure checking.
|
|
|
|
| |
This is just a start and gets most easy ones.
|
|
|
|
|
| |
SIZE_MAX is in C99, but not in C89. It is in <stdint.h>, and is always a
macro, so this fallback should be pretty portable and cause no issues.
|
|
|
|
| |
Part of #146
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the following warnings:
In file included from ass_cache.c:34:0:
ass_cache_template.h:52:0: warning: "BINSTRING" redefined
#define BINSTRING(member) \
^
In file included from ass_cache.h:59:0,
from ass_font.h:58,
from ass_cache.c:28:
ass_cache_template.h:9:0: note: this is the location of the previous definition
#define BINSTRING(member) \
^
In file included from ass_cache.c:36:0:
ass_cache_template.h:30:0: warning: "BINSTRING" redefined
#define BINSTRING(member) \
^
In file included from ass_cache.c:34:0:
ass_cache_template.h:52:0: note: this is the location of the previous definition
#define BINSTRING(member) \
^
|
| |
|
|
|
|
|
| |
Makes #131 not crash. The function likely fails because the number of
points exceeds SHRT_MAX.
|
| |
|
|
|
|
| |
Fixes libass#129.
|
| |
|
|\
| |
| | |
Fix integer overflow in FT_Outline
|
| | |
|
|\ \
| |/
|/| |
configure.ac: Treat DragonFly as the rest of BSDs
|
|/ |
|
|
|
|
| |
Fallout from the previous commits.
|
| |
|
|
|
|
|
|
| |
This not only provides a performance improvement but also
conveniently fixes the following issue: we used to interpret
backslash-escapes in vector drawings, but we shouldn't.
|
| |
|
|
|
|
|
|
|
|
| |
Like VSFilter. '{' without a following '}' is just text, though
in vector drawing mode it still delimits individual drawings.
This also lets us nicely avoid '\0' hacks
in the \t override tag handler in parse_tag.
|
| |
|
|
|
|
|
| |
Also replace strtocolor in ass_utils with string2color
from ass.c, because that is more useful everywhere now.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds 2 new API functions:
ass_set_selective_style_override()
ass_set_selective_style_override_enabled()
They can be used to force dialog text to use a specific ASS_Style. It
uses a fuzzy heuristic for that, and the quality of results may vary.
It does style overriding selectively and tries not to override things
that need explicit styling. The heuristic for that isn't set in stone
either, and can change with future libass versions.
Closes libass#88.
|
|\
| |
| | |
Use FT_Outline_EmboldenXY
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is somewhat similar to BorderStyle=3, but with a number of
differences. Mainly, this new BorderStyle doesn't create overlaps
within an event.
Closes #105.
|
| |
| |
| |
| |
| |
| | |
The glyphs are clipped before combining, so the combined bitmap can
always have the same position, size, and address. This breaks the
change detection. Or at least I think that's what happens.
|
|/
|
|
| |
It turns out we don't need this.
|