summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bump version0.9.12Grigori Goronzy2011-05-302-2/+2
|
* Update changelogGrigori Goronzy2011-05-301-0/+4
|
* Nicer default styleGrigori Goronzy2011-05-301-1/+1
| | | | Use 50% alpha for the shadow. Looks nicer and is just like VSFilter.
* Match first occurence of \fade, \fad, \an and \a tagsGrigori Goronzy2011-05-303-9/+23
| | | | | Track if we already parsed a fade or a alignment tag and ignore all further tags.
* Improved "last resort" charmap matchingGrigori Goronzy2011-04-091-5/+6
| | | | | | | | After font reselection, loop through all charmaps if no glyph can't be found until we hopefully find one that works. If we get here at all, the font is seriously broken, so this is unlikely to harm anything. This improves the last resort charmap fallback introduced in 96057d.
* Remove misleading comment about style case sensitivityGrigori Goronzy2011-04-091-1/+0
| | | | VSFilter always matches style names case sensitive.
* Much improved "Default" styleGrigori Goronzy2011-04-091-2/+36
| | | | | | Make the "Default" style, useful as a fallback and required by few scripts for proper rendering, actually do something sensible. Font, sizes, et cetera are set up mostly like VSFilter.
* VSFilter compat: don't render shadow when glyph/border invisibleGrigori Goronzy2011-04-091-0/+5
| | | | | Yet another VSFilter idiosyncracy: when the glyph fill is invisible (alpha 0xFF) and there is no border, do not render any shadow.
* Update gitignoreGrigori Goronzy2011-03-231-2/+2
|
* Fix fontconfig disabled at runtimeGrigori Goronzy2011-02-162-5/+8
| | | | | | MPlayer is able to use this configuration with the -nofontconfig flag; this fixes crashes in case no font is available. Fixes a crash at uninit as well.
* test: fix compilation with libpng 1.5, rename configure switchGrigori Goronzy2011-02-162-4/+4
| | | | | | | | | | | libpng 1.5 renamed the jmpbuf variable to jmp_buf. Since direct access to this variable is deprecated, it makes more sense to use the function png_jmpbuf() instead. Also, rename the --enable-png switch to --enable-test to make clear this is a debugging option. Initial patch by Alexis Ballier, aballier AT gentoo DOT org.
* Require fontconfig by defaultGrigori Goronzy2011-02-161-4/+3
| | | | | | Enable configure to require fontconfig by default; libass is quite useless for most purposes without it anyway. If you want to build without fontconfig, explicitly disable it with --disable-fontconfig.
* Simplify word wrapping and fix possible endless loopGrigori Goronzy2011-02-091-14/+5
| | | | | | | | | | | | | | | | | | wrap_lines_smart() got stuck if there was a long line without spaces followed by a hard linebreak. When the loop got to the '\n' character the hard linebreak was not handled because the line was already over wrap length and soft linebreak handling had precedence. Then at the end of the loop body the code noted that the hard linebreak hadn't yet been handled, and the same glyph needed to be reprocessed for that. However, the soft linebreak code hadn't actually done anything because there was no space to break at, and thus the loop repeated from the exact same state forever. Handle this by removing the check for an additional hard linebreak after a soft linebreak, which stepped back by one char. This is a very marginal case and shouldn't really matter in practice. Original patch and parts of this message by uau.
* Add changelog for next versionGrigori Goronzy2011-02-091-0/+5
|
* test: Add license headerGrigori Goronzy2010-09-281-0/+19
|
* Relicense to ISCGrigori Goronzy2010-09-2819-555/+191
| | | | | | In hope to make libass as useful as possible, relicense libass to ISC, a simplified 2-clause BSD license. All contributors who provided non-trivial changes have granted their permission for this.
* Add support for \fs+ and \fs- syntaxGrigori Goronzy2010-08-121-0/+16
| | | | | | | These forms can be used to add or subtract a value from the current font size instead of setting a new font size. Animations are supported, but not recommended, as they won't be fluid due to grid-fitting/hinting.
* Only word wrap on spacesGrigori Goronzy2010-08-121-7/+3
| | | | | | It looks like VSFilter only ever wraps on spaces, even if the line length is going to overflow. We should do that as well. Fixes a pretty confusing problem with scrolling vertical text.
* Bump autoconf version and LIBASS_VERSION0.9.11Grigori Goronzy2010-08-112-2/+2
|
* Set AM_CFLAGS instead of CFLAGS directlyGrigori Goronzy2010-08-093-3/+4
|
* Update changelogGrigori Goronzy2010-08-091-0/+4
|
* Get rid of NULL checks for freeGrigori Goronzy2010-08-097-52/+33
| | | | | The useless "if (foo) free(foo)" idiom is all over the place, just get rid of it finally...
* Fix another minor leak (event_format overwriting)Grigori Goronzy2010-08-091-0/+1
|
* Fix leaking of script-embedded fontsGrigori Goronzy2010-08-091-4/+2
|
* Fix drawing leakage: delay glyph allocationGrigori Goronzy2010-08-094-15/+17
| | | | | | Delay allocation of the "faux" glyph until a drawing is parsed. This helps with fixing a (pretty bad) memory leak and also reduces frame overhead a little.
* POSIX compliance: add strings.h include where appropriateGrigori Goronzy2010-08-074-0/+4
| | | | | strcasecmp/strncasecmp needs strings.h according to POSIX, so add this include where these occur.
* Add missing config.h includeGrigori Goronzy2010-08-071-0/+2
|
* Version bump0.9.10Grigori Goronzy2010-08-062-3/+3
| | | | | Increment shared library revision (due to API additions) and autoconf version.
* Fall back to first charmap as last resortGrigori Goronzy2010-08-011-0/+8
| | | | | | 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.
* Raise verbosity level of "unknown transition effect" messageGrigori Goronzy2010-08-011-1/+1
| | | | This is more irritating than it helps and can seriously spam output.
* Check vector clip mask bounding box sizeGrigori Goronzy2010-08-013-6/+15
| | | | | | Similar to regular glyphs, check the bounding box of the clip mask and refrain from rendering humongous masks, which can take up considerably memory.
* Update changelogGrigori Goronzy2010-08-011-0/+2
|
* Fix TextInfo reallocationGrigori Goronzy2010-08-011-1/+1
|
* Don't initialize bitmap hash key with bogus valuesGrigori Goronzy2010-08-011-2/+0
|
* refactor: extract glyph hash key fillGrigori Goronzy2010-08-011-24/+34
|
* refactor: move transformation/projection functionsGrigori Goronzy2010-08-011-80/+75
| | | | Gets rid of another forward declaration.
* Cosmetics: various cleanups in ass_render.cGrigori Goronzy2010-08-011-43/+36
| | | | | Cosmetical simplifications, fix whitespace where useful, remove deprecated comments.
* Handle allocation failure of clipped bitmapsGrigori Goronzy2010-08-011-0/+2
|
* Check ASS_Image allocationGrigori Goronzy2010-08-011-7/+13
|
* refactor: remove unneeded includesGrigori Goronzy2010-08-011-15/+1
| | | | These are included by ass_render.h already.
* refactor: move ASS_Renderer getters/setters/etc into separate fileGrigori Goronzy2010-08-014-126/+147
|
* refactor: extract bitmap hash key fillGrigori Goronzy2010-08-011-96/+80
|
* refactor: extract cache check/managementGrigori Goronzy2010-08-011-20/+27
|
* Limit (bitmap) glyph cache sizeGrigori Goronzy2010-08-012-4/+11
| | | | | | | | | | 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.
* Fix potential, small memory leakGrigori Goronzy2010-07-291-0/+1
| | | | | Free clip vector drawing if multiple clip vectors appear in a single line. (In this case the last clip vector is used.)
* Parse vector clip mask only after cache missGrigori Goronzy2010-07-292-16/+23
|
* Remove debugging leftoversGrigori Goronzy2010-07-291-21/+0
|
* Fix drawing cbox calculationGrigori Goronzy2010-07-292-2/+19
| | | | | | 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.
* Cache vector clip masksGrigori Goronzy2010-07-222-11/+34
| | | | | Cache pre-rasterized vector clip masks, big speedup if vector clipping is used extensively.
* refactor: move position translation functionsGrigori Goronzy2010-07-221-55/+51
| | | | Gets rid of a few forward declarations.
* Better PAR correctionGrigori Goronzy2010-07-222-29/+49
| | | | | | | | | | 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).
* Limit debug output on parsing errorsGrigori Goronzy2010-07-192-2/+2
| | | | Limit context printed after parsing errors to 30 characters
* Drawing cache: include scale factor in hash keyGrigori Goronzy2010-07-141-1/+5
|
* Avoid unnecessary conditional and initializationsGrigori Goronzy2010-07-141-4/+3
|
* ASS_Drawing: do not free glyphGrigori Goronzy2010-07-141-2/+0
| | | | | The glyph is inserted into the cache and freed upon cache reset, so it shouldn't be freed alongside the drawing.
* Fix match_fullname loopGrigori Goronzy2010-07-111-1/+2
| | | | | Let's loop over everything and not just the outline check. *sigh* Fixes a crash reported by lachs0r on IRC.
* Simple optimizations to memory handlingGrigori Goronzy2010-06-272-7/+4
|
* Reduce number of glyph copiesGrigori Goronzy2010-06-271-16/+18
| | | | | | | | | 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%!
* Add fixups for various font defectsGrigori Goronzy2010-06-263-82/+128
| | | | | | | | 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.
* Update changelogGrigori Goronzy2010-06-261-0/+7
|
* Build system: replace "shave" script by AM_SILENT_RULESGrigori Goronzy2010-06-266-324/+4
| | | | | Use AM_SILENT_RULES in favor of "shave" if automake >= 1.11 is available. Otherwise, disable silent build.
* Improve fullname matchingGrigori Goronzy2010-06-261-5/+18
| | | | | | | | 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.
* Fix off-by-one error in cbox calculationGrigori Goronzy2010-06-071-1/+1
| | | | | The last point wasn't included in cbox calculation, sometimes triggering removal of inside contours when it wasn't needed.
* Export ass_flush_events symbolGrigori Goronzy2010-06-021-0/+1
| | | | Fix for previous commit.
* Add API function to flush all eventsGrigori Goronzy2010-05-312-1/+21
| | | | | | 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).
* Handle simple backquotingClément Bœsch2010-05-221-0/+8
| | | | This allows this kind of subtitle to be displayed: \{Hello World\}
* Fix ascender/descender scalingGrigori Goronzy2010-05-171-1/+1
| | | | Partially reverts 162a735b6b2dba13022f96db42a3f153cf28033e.
* Use first Windows charmap as fallbackGrigori Goronzy2010-04-181-2/+13
| | | | | | 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.
* Support multiple faces per attachment correctlyGrigori Goronzy2010-04-172-2/+2
| | | | | | | | 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!
* Simplify: FreeType glyph load flagsGrigori Goronzy2010-04-111-2/+2
|
* Use vertical ascender only for rotated glyphsGrigori Goronzy2010-04-111-1/+1
|
* Completely disable transforms when loading a glyphGrigori Goronzy2010-04-111-0/+1
| | | | Might save a few cycles.
* Do not rotate glyphs below lower bound (GDI)Grigori Goronzy2010-04-111-31/+20
| | | | | | GDI does not use vertical writing for glyphs below a certain unicode codepoint. To make this work correctly, refactor glyph transformations a bit.
* Calculate vertical layout ascender/descenderGrigori Goronzy2010-04-111-0/+3
| | | | | Calculate ascender for rotated glyphs from the maximum advance width. Works OK usually, but screws up with fonts that miss this information.
* Basic @font supportGrigori Goronzy2010-04-115-14/+40
| | | | | | 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.
* Ignore global advance width unconditionallyGrigori Goronzy2010-04-101-5/+5
| | | | | | | | | | 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.
* Bump autoconf versionGrigori Goronzy2010-03-011-1/+1
| | | | | Oops, forgot this one. This is only important for building distfiles though, so I won't bother with another release tag.
* Bump LIBASS_VERSION0.9.9Grigori Goronzy2010-03-011-1/+1
|
* Initial changelog for release 0.9.9Grigori Goronzy2010-03-011-0/+11
|
* Cosmetics: remove underscore prefix from _select_font functionGrigori Goronzy2010-02-131-4/+4
|
* fontconfig: consider fullname for matching fontsGrigori Goronzy2010-02-121-3/+61
| | | | | | | 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!).
* Move frame size setup into ass_reconfigureGrigori Goronzy2010-02-121-16/+15
| | | | It isn't needlessly run every frame this way. Also it's cleaner.
* Update documentation to reflect fontconfig changesGrigori Goronzy2010-02-121-2/+2
|
* Remove file size limit in ass_read_fileGrigori Goronzy2010-02-061-9/+0
| | | | | | 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.
* Simplify test programGrigori Goronzy2010-02-061-6/+0
| | | | Lots of unnecessary calls to setup functions can be removed.
* Use font