| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
`test` subdirectory contains complete test example.
|
| |
|
|
|
|
|
| |
The internal rasterizer cannot be disabled (and the option has
no effect) since commit ef6cc020bc00118a5b142b37fe401327a029a1fc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Loosely based on behdad/harfbuzz@b96af03c20e46105982b3608b608614403540661.
Prefer to link against ApplicationServices to maximize the
portability of binaries built on newer versions of macOS.
The symbol kCTFontURLAttribute, which is checked in this commit, was
introduced in Mac OS X 10.6, the latest of any Core Text symbols that
we use. It is essential to our Core Text font provider, so this is the
earliest version of Mac OS X where we can support this font provider.
The TARGET_OS_IPHONE conditional that this commit adds is necessary to
continue supporting iOS in addition to supporting old Mac OS X. On iOS,
CoreText.h *must* be included to use Core Text, whereas on old Mac OS X,
CoreText.h is not directly accessible and ApplicationServices.h must be
used. On modern macOS, either header works. This conditional is also
used in HarfBuzz.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
sizeof(ASS_Style) is actually part of the ABI, so adding the Justify field
in commit e54c123d5a08b6212533ddcced2cb1a50fa3d2b2 broke the ABI even
though we tried to avoid it by placing the field at the end of the struct.
|
| |
|
| |
|
| |
|
|
|
|
| |
Unquoted strings cause an error when the test variable is empty.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
And fix two wrong comments.
Bump the Fontconfig version requirement to 2.10.92 (2.11 RC2), released
on 2013-03-29, to ensure Fontconfig caches and exposes PostScript names.
|
|
|
|
|
|
| |
Library checks can succeed if the needed functions exist in libc
and don't need any extra linker flags. Avoid adding unnecessary
flags (which break static linking against libass) in this case.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This was forgotten. We always load dwrite.dll at runtime, so this isn't
needed.
|
|
|
|
|
|
|
|
|
|
|
| |
There is no real value in it. ENCA only works in some cases and I
can't find any information about software that integrates libass
which relies on it or users that rely on ENCA support in case the
interface is exposed directly (e.g. in MPlayer).
If there is still a wish to have charset detection integrated into
libass (it is out of scope, IMHO), a better library like uchardet
should be used for that.
|
| |
|
| |
|
|
|
|
|
| |
Also, remove the ass_coretext.c conditional compilation hack, and fix
Makefile.am instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately, nobody ever tested the MinGW dwrite.h header in C. There
are multiple glaring mistakes, and the header doesn't even compile by
itself. The main issues are overloaded functions (which doesn't work
in C), and broken COBJMACROS defines.
dwrite.diff contains changes to dwrite.h which make libass work.
Warning: the patch lacks a required change to the DrawInlineObject
method of IDWriteTextRenderer (missing THIS_).
Additionally, these definitions would ideally be provided by dwrite.h:
DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a,0xd838,0x4b5b,0xa2,0xe8,0x1a,0xdc,0x7d,0x93,0xdb,0x48);
DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da,0xecf4,0x4d24,0xb6,0x44,0xb3,0x4f,0x68,0x42,0x02,0x4b);
DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa0,0x72,0x4e,0xb8,0x19);
Also, in order to make libass compile out of the box with current
MinGW/msys installations, a very stripped down in-tree copy of dwrite.h
is provided.
|
| |
|
| |
|
|
|
|
|
|
| |
This uses a faux rendering with a high-level interface of DirectWrite
to determine a suitable fallback. Choices are different from GDI,
but reasonable.
|
| |
|
|
|
|
| |
Incomplete, leaks memory, but capable of rendering something.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fontconfig is known to be very slow on OS X and Windows, this has to do with
the extremely prohibitive cache times (which are getting even longer with
latest versions of Fontconfig).
This commits starts to address the problem by using CoreText on OS X to load
the font data. The commit uses the simplest possible approach to load all of
the data in memory and then use it to match. This causes a somewhat slow
startup time (around ~400ms on my i7) but it is already better than waiting
*minutes* for Fontconfig to cache the fonts data.
A later commit will improve the speed of the match by using a hybrid approach
that lazy loads in the libass database only the necessary fonts.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This standard function is not available everywhere, so we detect it and
provide a fallback if missing.
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Rodger Combs <rodger.combs@gmail.com>
|
| |
|
|
|
|
|
|
| |
Adds yasm version check and handles Free/OpenBSD/win32 correctly.
Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 840ce4c2d9381e340c3239d104933fea85fff3e5.
Harfbuzz added UCDN support much quicker than I thought and the latest
release 0.9.5 contains UCDN already, so we don't need it in libass
anymore.
|
|
|
|
|
|
| |
Add explicit support for UCDN, without relying on any HarfBuzz
integration. This finally allows easy usage of HarfBuzz without glib,
ICU, or some other big bloated library!
|
|
|
|
|
|
|
|
| |
This allows users to change the vertical position of normal subtitles.
MPlayer has such a feature as -sub-pos option using its internal
subtitle renderer.
Bump LIBASS_VERSION to indicate the API addition.
|
| |
|
|
|
|
|
| |
Use lowercase variable names to avoid bogus "possibly undefined macro"
errors.
|
|
|
|
|
| |
Use separate linker flags for the test program to avoid unnecessarily
linking the libass library against libpng.
|
|
|
|
|
|
|
| |
Add library and package dependencies to the default (non-private)
pkg-config fields for static-only builds. This makes sure the packages
and libraries are always picked up and used, even if the --static option
is not supplied to the pkg-config commandline.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that it's possible to switch shapers at runtime, it also becomes a
lot easier to disable them at compile time. Add ifdefs and build system
changes so that HarfBuzz can be safely disabled. It's autodetected now
and enabled if available.
This shuffles a bit of code around, but there are no functional changes.
Note that FriBidi remains mandatory for the time being, but this
shouldn't pose any problems, since it is a small and very portable
library without any special dependencies.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
Increment shared library revision (due to API additions) and autoconf
version.
|
|
|
|
|
| |
Use AM_SILENT_RULES in favor of "shave" if automake >= 1.11 is available.
Otherwise, disable silent build.
|
|
|
|
|
| |
Oops, forgot this one. This is only important for building distfiles
though, so I won't bother with another release tag.
|
|
|
|
|
| |
Get rid of compatibility #ifdefs and some code to support very old
versions of freetype. libass now requires at least version 2.2.1.
|
|
|
|
|
| |
Get rid of compatibility code and #ifdefs for very old fontconfig
versions. libass now requires at least version 2.4.2.
|
| |
|
| |
|
|
|
|
|
| |
* Add enable/disable flags for enca, fontconfig and libpng.
* Add dependent libraries to pkg-config file to allow static linking.
|
|
|
|
| |
Check for libm and add the library to the linker flags.
|
|
|
|
|
|
|
|
| |
* Remove checks for functions or headers that are part of ANSI C
or C89.
* Make enca optional.
* Conditionally compile the test program depending on libpng
availability.
|