]> granicus.if.org Git - libass/log
libass
14 years agoVersion bump 0.9.10
Grigori Goronzy [Wed, 4 Aug 2010 00:37:55 +0000 (02:37 +0200)]
Version bump

Increment shared library revision (due to API additions) and autoconf
version.

14 years agoFall back to first charmap as last resort
Grigori Goronzy [Sun, 1 Aug 2010 21:52:30 +0000 (23:52 +0200)]
Fall back to first charmap as last resort

If we're already after the font reselection stage and a glyph cannot be
found in a font, try again with the first charmap as a last resort.
This is needed for old "symbol" fonts, for example.

14 years agoRaise verbosity level of "unknown transition effect" message
Grigori Goronzy [Sun, 1 Aug 2010 21:22:51 +0000 (23:22 +0200)]
Raise verbosity level of "unknown transition effect" message

This is more irritating than it helps and can seriously spam output.

14 years agoCheck vector clip mask bounding box size
Grigori Goronzy [Sun, 1 Aug 2010 20:23:25 +0000 (22:23 +0200)]
Check vector clip mask bounding box size

Similar to regular glyphs, check the bounding box of the clip mask and
refrain from rendering humongous masks, which can take up considerably
memory.

14 years agoUpdate changelog
Grigori Goronzy [Sun, 1 Aug 2010 15:31:23 +0000 (17:31 +0200)]
Update changelog

14 years agoFix TextInfo reallocation
Grigori Goronzy [Sun, 1 Aug 2010 05:22:18 +0000 (07:22 +0200)]
Fix TextInfo reallocation

14 years agoDon't initialize bitmap hash key with bogus values
Grigori Goronzy [Sun, 1 Aug 2010 04:31:31 +0000 (06:31 +0200)]
Don't initialize bitmap hash key with bogus values

14 years agorefactor: extract glyph hash key fill
Grigori Goronzy [Sun, 1 Aug 2010 04:29:27 +0000 (06:29 +0200)]
refactor: extract glyph hash key fill

14 years agorefactor: move transformation/projection functions
Grigori Goronzy [Sun, 1 Aug 2010 04:20:50 +0000 (06:20 +0200)]
refactor: move transformation/projection functions

Gets rid of another forward declaration.

14 years agoCosmetics: various cleanups in ass_render.c
Grigori Goronzy [Sun, 1 Aug 2010 04:16:11 +0000 (06:16 +0200)]
Cosmetics: various cleanups in ass_render.c

Cosmetical simplifications, fix whitespace where useful, remove
deprecated comments.

14 years agoHandle allocation failure of clipped bitmaps
Grigori Goronzy [Sun, 1 Aug 2010 03:22:18 +0000 (05:22 +0200)]
Handle allocation failure of clipped bitmaps

14 years agoCheck ASS_Image allocation
Grigori Goronzy [Sun, 1 Aug 2010 03:17:11 +0000 (05:17 +0200)]
Check ASS_Image allocation

14 years agorefactor: remove unneeded includes
Grigori Goronzy [Sun, 1 Aug 2010 02:49:41 +0000 (04:49 +0200)]
refactor: remove unneeded includes

These are included by ass_render.h already.

14 years agorefactor: move ASS_Renderer getters/setters/etc into separate file
Grigori Goronzy [Sun, 1 Aug 2010 02:41:32 +0000 (04:41 +0200)]
refactor: move ASS_Renderer getters/setters/etc into separate file

14 years agorefactor: extract bitmap hash key fill
Grigori Goronzy [Sun, 1 Aug 2010 02:20:26 +0000 (04:20 +0200)]
refactor: extract bitmap hash key fill

14 years agorefactor: extract cache check/management
Grigori Goronzy [Sun, 1 Aug 2010 01:42:17 +0000 (03:42 +0200)]
refactor: extract cache check/management

14 years agoLimit (bitmap) glyph cache size
Grigori Goronzy [Sun, 1 Aug 2010 01:30:59 +0000 (03:30 +0200)]
Limit (bitmap) glyph cache size

Now that bitmap glyphs (for vector clip masks) are stored in the glyph
cache, make sure it cannot grow indefinitely easily. Similar to the
bitmap cache, track approximate size of the cached elements and reset
if the cache exceeds a certain limit.
Also, reduce default bitmap cache size to 30 MB as we have essentially
two bitmap caches now. That's still plenty in all use cases where
caching matters.

14 years agoFix potential, small memory leak
Grigori Goronzy [Thu, 29 Jul 2010 01:12:31 +0000 (03:12 +0200)]
Fix potential, small memory leak

Free clip vector drawing if multiple clip vectors appear in a single
line.  (In this case the last clip vector is used.)

14 years agoParse vector clip mask only after cache miss
Grigori Goronzy [Thu, 29 Jul 2010 01:05:19 +0000 (03:05 +0200)]
Parse vector clip mask only after cache miss

14 years agoRemove debugging leftovers
Grigori Goronzy [Thu, 29 Jul 2010 00:50:16 +0000 (02:50 +0200)]
Remove debugging leftovers

14 years agoFix drawing cbox calculation
Grigori Goronzy [Thu, 29 Jul 2010 00:38:29 +0000 (02:38 +0200)]
Fix drawing cbox calculation

Use extremes of all points fed to the parser, instead of only points
that are added to the outline.
Fixes a rendering problem reported on IRC and should fix Issue #7.

14 years agoCache vector clip masks
Grigori Goronzy [Thu, 22 Jul 2010 19:40:19 +0000 (21:40 +0200)]
Cache vector clip masks

Cache pre-rasterized vector clip masks, big speedup if vector clipping
is used extensively.

14 years agorefactor: move position translation functions
Grigori Goronzy [Thu, 22 Jul 2010 17:06:46 +0000 (19:06 +0200)]
refactor: move position translation functions

Gets rid of a few forward declarations.

14 years agoBetter PAR correction
Grigori Goronzy [Thu, 22 Jul 2010 17:02:12 +0000 (19:02 +0200)]
Better PAR correction

PAR correction so far merely applied a horizontal scaling factor to
glyphs right after loading. This screws up transformed text,
unfortunately.
It's a much better approach to typeset text without correction and scale
everything at the very end. In MPlayer, an EOSD rendering now looks
exactly the same as a video filter rendering (except for more sharpness
in the EOSD case).

14 years agoLimit debug output on parsing errors
Grigori Goronzy [Mon, 19 Jul 2010 00:08:12 +0000 (02:08 +0200)]
Limit debug output on parsing errors

Limit context printed after parsing errors to 30 characters

14 years agoDrawing cache: include scale factor in hash key
Grigori Goronzy [Wed, 14 Jul 2010 13:41:31 +0000 (15:41 +0200)]
Drawing cache: include scale factor in hash key

14 years agoAvoid unnecessary conditional and initializations
Grigori Goronzy [Wed, 14 Jul 2010 13:17:34 +0000 (15:17 +0200)]
Avoid unnecessary conditional and initializations

14 years agoASS_Drawing: do not free glyph
Grigori Goronzy [Wed, 14 Jul 2010 13:16:13 +0000 (15:16 +0200)]
ASS_Drawing: do not free glyph

The glyph is inserted into the cache and freed upon cache reset,
so it shouldn't be freed alongside the drawing.

14 years agoFix match_fullname loop
Grigori Goronzy [Sun, 11 Jul 2010 00:03:46 +0000 (02:03 +0200)]
Fix match_fullname loop

Let's loop over everything and not just the outline check. *sigh*
Fixes a crash reported by lachs0r on IRC.

14 years agoSimple optimizations to memory handling
Grigori Goronzy [Sun, 27 Jun 2010 10:25:46 +0000 (12:25 +0200)]
Simple optimizations to memory handling

14 years agoReduce number of glyph copies
Grigori Goronzy [Sat, 26 Jun 2010 23:25:56 +0000 (01:25 +0200)]
Reduce number of glyph copies

Do not copy glyphs when it isn't really needed.
Profiling with valgrind's callgrind showed that FT_Glyph_Copy takes a
big fraction of the rendering time (~40%) for "simple styled softsubs"
cases. It turned out that glyphs are duplicated much more often than
is necessary. Reducing the number of copies cuts down the rendering
time for the "simple styled softsubs" case by about 70%!

14 years agoAdd fixups for various font defects
Grigori Goronzy [Sat, 26 Jun 2010 03:15:18 +0000 (05:15 +0200)]
Add fixups for various font defects

Reverse "outside" contours with wrong winding correction, require
that a contour is "inside" for considering its removal; Move this
hack into ass_font.c, where it belongs.

Initial patch by uau.

14 years agoUpdate changelog
Grigori Goronzy [Sat, 26 Jun 2010 01:16:47 +0000 (03:16 +0200)]
Update changelog

14 years agoBuild system: replace "shave" script by AM_SILENT_RULES
Grigori Goronzy [Sat, 26 Jun 2010 01:04:00 +0000 (03:04 +0200)]
Build system: replace "shave" script by AM_SILENT_RULES

Use AM_SILENT_RULES in favor of "shave" if automake >= 1.11 is available.
Otherwise, disable silent build.

14 years agoImprove fullname matching
Grigori Goronzy [Sat, 26 Jun 2010 00:17:03 +0000 (02:17 +0200)]
Improve fullname matching

Only match outline fonts and take slant and weight into consideration.
This matches all font faces which have at least the slant/weight that is
requested. This fixes issue 23; however, corner cases can be constructed
in which wrong fonts will be matched, if multiple slant/weight variants
of the same font exist, but that is very unlikely in practice.

14 years agoFix off-by-one error in cbox calculation
Grigori Goronzy [Mon, 7 Jun 2010 18:21:41 +0000 (20:21 +0200)]
Fix off-by-one error in cbox calculation

The last point wasn't included in cbox calculation, sometimes triggering
removal of inside contours when it wasn't needed.

14 years agoExport ass_flush_events symbol
Grigori Goronzy [Wed, 2 Jun 2010 17:47:36 +0000 (19:47 +0200)]
Export ass_flush_events symbol

Fix for previous commit.

14 years agoAdd API function to flush all events
Grigori Goronzy [Sun, 30 May 2010 23:38:11 +0000 (01:38 +0200)]
Add API function to flush all events

Add a function to flush all events in a track and increment
LIBASS_VERSION to indicate the addition.
Initial patch by Aurelien Jacobs (aurel AT gnuage DOT org).

14 years agoHandle simple backquoting
Clément Bœsch [Fri, 21 May 2010 17:19:10 +0000 (19:19 +0200)]
Handle simple backquoting

This allows this kind of subtitle to be displayed: \{Hello World\}

14 years agoFix ascender/descender scaling
Grigori Goronzy [Mon, 17 May 2010 01:35:41 +0000 (03:35 +0200)]
Fix ascender/descender scaling

Partially reverts 162a735b6b2dba13022f96db42a3f153cf28033e.

14 years agoUse first Windows charmap as fallback
Grigori Goronzy [Sat, 17 Apr 2010 23:28:25 +0000 (01:28 +0200)]
Use first Windows charmap as fallback

Extend the charmap selection heuristics to select the first Windows
charmap if no Unicode charmap is found.
Fixes one particular font, FGP楷書体NT-M, and possibly others.

14 years agoSupport multiple faces per attachment correctly
Grigori Goronzy [Sat, 17 Apr 2010 20:59:47 +0000 (22:59 +0200)]
Support multiple faces per attachment correctly

Store the real font face id instead of using 0 all the time and use the
real font face id for font lookup as well. This makes font attachments
with multiple faces work correctly.

Thanks to ubitux and uau!

14 years agoSimplify: FreeType glyph load flags
Grigori Goronzy [Sun, 11 Apr 2010 02:02:14 +0000 (04:02 +0200)]
Simplify: FreeType glyph load flags

14 years agoUse vertical ascender only for rotated glyphs
Grigori Goronzy [Wed, 3 Mar 2010 12:38:04 +0000 (13:38 +0100)]
Use vertical ascender only for rotated glyphs

14 years agoCompletely disable transforms when loading a glyph
Grigori Goronzy [Wed, 3 Mar 2010 12:28:06 +0000 (13:28 +0100)]
Completely disable transforms when loading a glyph

Might save a few cycles.

14 years agoDo not rotate glyphs below lower bound (GDI)
Grigori Goronzy [Mon, 1 Mar 2010 17:51:22 +0000 (18:51 +0100)]
Do not rotate glyphs below lower bound (GDI)

GDI does not use vertical writing for glyphs below a certain unicode
codepoint.
To make this work correctly, refactor glyph transformations a bit.

14 years agoCalculate vertical layout ascender/descender
Grigori Goronzy [Thu, 18 Feb 2010 06:14:23 +0000 (07:14 +0100)]
Calculate vertical layout ascender/descender

Calculate ascender for rotated glyphs from the maximum advance width.
Works OK usually, but screws up with fonts that miss this information.

14 years agoBasic @font support
Grigori Goronzy [Thu, 18 Feb 2010 04:27:16 +0000 (05:27 +0100)]
Basic @font support

Do not skip '@' at the start of a font name in styles; detect '@' at
font name start and set a new attribute in ASS_Font accordingly.
Rotate affected glyphs after loading and calculate a suitable advance.

14 years agoIgnore global advance width unconditionally
Grigori Goronzy [Sat, 10 Apr 2010 02:02:36 +0000 (04:02 +0200)]
Ignore global advance width unconditionally

Some (arguably) broken CJK fonts claim to have a fixed advance width,
but they actually use two different widths for half-width and full-width
characters. Even worse, some use proportional width.
This can cause problems under certain circumstances.  A big project
(Cairo) uses a FreeType load flag to ignore the global advance width
for such fonts, so I assume it can be used safely. Let's do it just
like them.

14 years agoBump autoconf version
Grigori Goronzy [Mon, 1 Mar 2010 04:50:19 +0000 (05:50 +0100)]
Bump autoconf version

Oops, forgot this one. This is only important for building distfiles
though, so I won't bother with another release tag.

14 years agoBump LIBASS_VERSION 0.9.9
Grigori Goronzy [Mon, 1 Mar 2010 04:24:57 +0000 (05:24 +0100)]
Bump LIBASS_VERSION

14 years agoInitial changelog for release 0.9.9
Grigori Goronzy [Sat, 13 Feb 2010 15:53:31 +0000 (16:53 +0100)]
Initial changelog for release 0.9.9

14 years agoCosmetics: remove underscore prefix from _select_font function
Grigori Goronzy [Sat, 13 Feb 2010 02:22:31 +0000 (03:22 +0100)]
Cosmetics: remove underscore prefix from _select_font function

14 years agofontconfig: consider fullname for matching fonts
Grigori Goronzy [Wed, 10 Feb 2010 22:51:11 +0000 (23:51 +0100)]
fontconfig: consider fullname for matching fonts

Additionally match fonts via the fullname (or name for humans) and
prefer these matches. Previously, libass matched against the family name
only and this name can be completely different from the fullname (which
is used by VSFilter!).

14 years agoMove frame size setup into ass_reconfigure
Grigori Goronzy [Tue, 9 Feb 2010 23:45:36 +0000 (00:45 +0100)]
Move frame size setup into ass_reconfigure

It isn't needlessly run every frame this way. Also it's cleaner.

14 years agoUpdate documentation to reflect fontconfig changes
Grigori Goronzy [Tue, 9 Feb 2010 20:25:08 +0000 (21:25 +0100)]
Update documentation to reflect fontconfig changes

14 years agoRemove file size limit in ass_read_file
Grigori Goronzy [Sat, 6 Feb 2010 03:11:53 +0000 (04:11 +0100)]
Remove file size limit in ass_read_file

If an application wants to provide some sort of safeguard against
loading very big files (which can trash memory), it should do so by
itself.

14 years agoSimplify test program
Grigori Goronzy [Sat, 6 Feb 2010 03:04:50 +0000 (04:04 +0100)]
Simplify test program

Lots of unnecessary calls to setup functions can be removed.

14 years agoUse font scaling coefficient 1.0 by default
Grigori Goronzy [Sat, 6 Feb 2010 03:04:20 +0000 (04:04 +0100)]
Use font scaling coefficient 1.0 by default

14 years agoDo not try to render if fonts have not been configured
Grigori Goronzy [Sat, 6 Feb 2010 03:02:16 +0000 (04:02 +0100)]
Do not try to render if fonts have not been configured

14 years agoClarify that libass expects subtitle packets in Matroska format
Grigori Goronzy [Tue, 2 Feb 2010 02:47:06 +0000 (03:47 +0100)]
Clarify that libass expects subtitle packets in Matroska format

14 years agoUpdate ass_set_fonts_dir documentation
Grigori Goronzy [Mon, 1 Feb 2010 19:00:24 +0000 (20:00 +0100)]
Update ass_set_fonts_dir documentation

Now that libass never extracts fonts anymore, update documentation
accordingly.

14 years agoSkip border generation if glyph is collapsed
Grigori Goronzy [Thu, 21 Jan 2010 05:31:45 +0000 (06:31 +0100)]
Skip border generation if glyph is collapsed

If a character is completely collapsed in x or y direction (\fscx0,
\fscy0), the rasterizer will not generate any visible pixels. This also
means vsfilter will never draw any border in this case, since it works
on the pixel data. FreeType's stroker OTOH happily draws a border around
a character, no matter how collapsed it is. Emulate vsfilter's behavior
by skipping border generation if the glyph is collapsed.

14 years agoAdjust a few message levels and message texts
Grigori Goronzy [Mon, 18 Jan 2010 23:55:46 +0000 (00:55 +0100)]
Adjust a few message levels and message texts

14 years agoUp size limit for script files
Grigori Goronzy [Mon, 18 Jan 2010 23:42:22 +0000 (00:42 +0100)]
Up size limit for script files

Change size limit from 10MB to 50MB and clean up code a bit. A limit
still might be handy if one selects a very big file for subtitles by
accident. 50MB should be enough for even the biggest karaoke files.

14 years agoFix a warning due to added constness
Grigori Goronzy [Tue, 12 Jan 2010 13:06:03 +0000 (14:06 +0100)]
Fix a warning due to added constness

14 years agoFix leftovers from conversion to ass_strtod
Yuriy M. Kaminskiy [Tue, 12 Jan 2010 05:22:27 +0000 (08:22 +0300)]
Fix leftovers from conversion to ass_strtod

14 years agoConstify table in ass_strtod
Yuriy M. Kaminskiy [Tue, 12 Jan 2010 05:20:58 +0000 (08:20 +0300)]
Constify table in ass_strtod

14 years agoRemove support for freetype < 2.2.1
Grigori Goronzy [Fri, 8 Jan 2010 17:23:34 +0000 (18:23 +0100)]
Remove support for freetype < 2.2.1

Get rid of compatibility #ifdefs and some code to support very old
versions of freetype. libass now requires at least version 2.2.1.

14 years agoRemove support for fontconfig < 2.4.2
Grigori Goronzy [Fri, 8 Jan 2010 17:00:17 +0000 (18:00 +0100)]
Remove support for fontconfig < 2.4.2

Get rid of compatibility code and #ifdefs for very old fontconfig
versions.  libass now requires at least version 2.4.2.

14 years agoUse conversion functions to generate cache keys
Grigori Goronzy [Wed, 6 Jan 2010 22:58:05 +0000 (23:58 +0100)]
Use conversion functions to generate cache keys

Use the fixed-point conversion functions instead of (slightly incorrect)
manual conversion.

14 years agoImprove rotation cache accuracy
Grigori Goronzy [Wed, 6 Jan 2010 22:51:01 +0000 (23:51 +0100)]
Improve rotation cache accuracy

In some cases 16.16 precision is not good enough. Instead use 10.22 and
use modulo 360.0 on the angles to make overflows impossible and improve
cache hit ratio sometimes.

14 years agoDon't flag for freeing if codepage is unspecified
Grigori Goronzy [Wed, 6 Jan 2010 09:44:23 +0000 (10:44 +0100)]
Don't flag for freeing if codepage is unspecified

Patch by Arne Morten Kvarving <spiff@micron.(none)>.

14 years agoReset clip_mode on new events
Grigori Goronzy [Mon, 4 Jan 2010 18:54:19 +0000 (19:54 +0100)]
Reset clip_mode on new events

Make sure that the clip mode is reset to regular on new events.
Otherwise events after an event that used inverse clip will also use
inverse clip. Ouch! Usually the symptom is that subtitles become
invisible as the whole screen is clipped.

14 years agoReplace strtod with locale-independent strtod
Grigori Goronzy [Sun, 3 Jan 2010 13:54:02 +0000 (14:54 +0100)]
Replace strtod with locale-independent strtod

strtod respects the locale and in some locales, the decimal separator is
not a point, leading to parsing errors in tags like \pos(23.4,5), which
are perfectly valid.
As there isn't a really portable way to use a particular locale just for
one call to strtod, reimplement it. The implementation was taken from
the 1.8 branch of Ruby.

14 years agoautogen: cosmetics, overwrite files
Grigori Goronzy [Sun, 3 Jan 2010 12:48:32 +0000 (13:48 +0100)]
autogen: cosmetics, overwrite files

15 years agoFix minor typo
Grigori Goronzy [Sun, 11 Oct 2009 08:05:20 +0000 (10:05 +0200)]
Fix minor typo

15 years agoFix libass w/o fontconfig
Grigori Goronzy [Sun, 11 Oct 2009 07:07:26 +0000 (09:07 +0200)]
Fix libass w/o fontconfig

Make sure that libass does not crash even if no default font is
provided.  Additionally, fix crashes related to drawings in this and
possibly other unusual cases.

Document the default_path and default_family parameters of
ass_set_fonts.

15 years agostrdup() fontconfig strings freed by caller
Grigori Goronzy [Thu, 8 Oct 2009 21:55:23 +0000 (23:55 +0200)]
strdup() fontconfig strings freed by caller

fontconfig_select() can return the path to the default font as fallback,
but the caller frees it later.  Return a copy with strdup() instead.

15 years agoRemove superfluous cast
Grigori Goronzy [Thu, 8 Oct 2009 21:35:06 +0000 (23:35 +0200)]
Remove superfluous cast

15 years agoFix alpha calculation in some cases
Grigori Goronzy [Fri, 2 Oct 2009 02:12:03 +0000 (04:12 +0200)]
Fix alpha calculation in some cases

Picked up from XBMC svn.  This should especially fix MPlayer's direct3d
video output (untested).

15 years agoDisable test program and libpng by default 0.9.8
Grigori Goronzy [Thu, 17 Sep 2009 23:45:38 +0000 (01:45 +0200)]
Disable test program and libpng by default

15 years agoBump version to 0.9.8
Grigori Goronzy [Thu, 17 Sep 2009 23:33:44 +0000 (01:33 +0200)]
Bump version to 0.9.8

15 years agoUpdate changelog
Grigori Goronzy [Fri, 11 Sep 2009 02:12:38 +0000 (04:12 +0200)]
Update changelog

15 years agoRefactor: effect parsing should be in ass_parse.c
Grigori Goronzy [Fri, 11 Sep 2009 02:02:00 +0000 (04:02 +0200)]
Refactor: effect parsing should be in ass_parse.c

Move the function apply_transition_effects, which parses event-global
effects and adjusts a few state variables, into ass_parse.c.

15 years agoCopy shadow bitmap from glyph bitmap
Grigori Goronzy [Thu, 10 Sep 2009 09:08:21 +0000 (11:08 +0200)]
Copy shadow bitmap from glyph bitmap

It's not necessary to create the shadow bitmap by adding the glyph
bitmap to the outline bitmap; the outline is a superset of the glyph.

15 years agoRender NBSP (\h) as normal space
Grigori Goronzy [Thu, 10 Sep 2009 02:47:21 +0000 (04:47 +0200)]
Render NBSP (\h) as normal space

Many fonts don't have a non-breaking space (NBSP) character and this
can cause problems when these glyphs are substituted.  Render them
like a regular space.

15 years agoDisable kerning by default and make it configurable
Grigori Goronzy [Tue, 8 Sep 2009 20:21:43 +0000 (22:21 +0200)]
Disable kerning by default and make it configurable

Kerning causes problems with many (broken) fonts. VSFilter doesn't use
kerning so these problems won't be apparant, while libass uses kerning
by default.

For compatibility reasons, disable kerning by default. In addition,
make it configurable through style overrides and the Script Info
header.

I.e. put "Kerning: yes" into the Script Info header to enable kerning.
With MPlayer, using "-ass-force-style Kerning=yes" will always
enable kerning.

This also includes a minor ABI change for tracking the kerning boolean.
As this only affects code that creates or modifies ASS_Tracks manually,
and I'm not aware of anyone doing that, the SONAME will not be bumped.

15 years agoFix inline function prototypes
Grigori Goronzy [Wed, 2 Sep 2009 03:59:27 +0000 (05:59 +0200)]
Fix inline function prototypes

15 years agoRefactor: move event parsing code into separate file
Grigori Goronzy [Tue, 1 Sep 2009 21:15:48 +0000 (23:15 +0200)]
Refactor: move event parsing code into separate file

Move all code related to parsing event lines and processing override
tags into a separate file (ass_parse.c).

15 years agoFix underrun in slant pen correction
Grigori Goronzy [Tue, 1 Sep 2009 11:31:04 +0000 (13:31 +0200)]
Fix underrun in slant pen correction

15 years agoHandle illegal \a tags like VSFilter
Grigori Goronzy [Tue, 1 Sep 2009 01:09:17 +0000 (03:09 +0200)]
Handle illegal \a tags like VSFilter

Treat the illegal \a value 8 like 5 for compatibility with VSFilter.

15 years agoopaque box: do not subtract glyph from border
Grigori Goronzy [Tue, 1 Sep 2009 00:39:51 +0000 (02:39 +0200)]
opaque box: do not subtract glyph from border

Similar to VSFilter, do not subtract the glyph bitmap from the border
bitmap when BorderStyle 3 is used.

15 years agoRevert "Merge glyph and outline bitmap better"
Grigori Goronzy [Tue, 1 Sep 2009 00:22:44 +0000 (02:22 +0200)]
Revert "Merge glyph and outline bitmap better"

This reverts commit d3cd5b0148d64ae0f6e288e69b09acfe639fdcce.
This hack improved blending in few situations, but at the same time
broke it in lots o others; get rid of it.

15 years agoCalculate glyph slant width correctly
Grigori Goronzy [Mon, 31 Aug 2009 00:52:03 +0000 (02:52 +0200)]
Calculate glyph slant width correctly

If a glyph is wider than its advance width for italic to non-italic
style changes, assume it was obliqued by FreeType's FT_GlyphSlot_Oblique
function and offset the next glyph accordingly.

15 years agoDo not close empty drawings
Grigori Goronzy [Sat, 29 Aug 2009 18:26:20 +0000 (20:26 +0200)]
Do not close empty drawings

If there are no points (i.e. illegal drawing), do not close the drawing
by incrementing the contour counter.  Under certain circumstances, this
can crash the FreeType stroker.

This fixes issue 7.

15 years agoFix order of pen advance assignments
Grigori Goronzy [Sun, 23 Aug 2009 14:41:36 +0000 (16:41 +0200)]
Fix order of pen advance assignments

15 years agoFix opaque box sizing again
Grigori Goronzy [Sun, 23 Aug 2009 14:33:38 +0000 (16:33 +0200)]
Fix opaque box sizing again

Another try to get it to work like in VSFilter.  Hopefully it's
behaving the same now (except in some cases, since VSFilter layouts
word-based, but libass is glyph-based).

Additionally, make sure horizontal letter spacing (\fsp) is scaled
according to ScaleX.

15 years agoFix glyph overlap blending
Grigori Goronzy [Sun, 23 Aug 2009 01:49:22 +0000 (03:49 +0200)]
Fix glyph overlap blending

Use the bitmap pointer for the cache hash key.  This preserves the
blending history, which fixes occasional corruptions due to previous
replacements not being dealt with correctly.  It also simplifies the
hash key a lot and thus speeds up cache lookups.

Additionally, change the blending equation from max(a, b) to min(a + b,
0xff), i.e. a saturating addition.  Usually this looks a lot better.

15 years agoUpdate changelog
Grigori Goronzy [Fri, 21 Aug 2009 23:15:09 +0000 (01:15 +0200)]
Update changelog