| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an important, bug-fix-only release
consisting of 0.17.0 with two cherry-picked patches:
* c1daedea0e829a7e90389818d2bb662fd91d0be7
WHOLE_TEXT_LAYOUT bidi: fix buffer overread on soft-wrapped events
* a943ef542e72e849dc0c1047465e0506781374b5
configure: support x86 assembly on GNU Hurd
Users of 0.17.0 are advised to upgrade to 0.17.1 soon.
Nothing has changed besides fixing crash and build-stopper bugs,
so there are no side effects.
Users of 0.16.0 are also affected by the buffer overread bug and are
advised to upgrade or at least to backport the relevant fix themselves.
Cherry-picked from: e8ad72accd3a84268275a9385beb701c9284e5b3 (tag 0.17.1)
Co-authored-by: Oneric <oneric@oneric.stub>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This release’s major feature is the addition of a new ASS ScriptInfo
header pair: LayoutResX and LayoutResY. The introduction has been
coordinated with active VSFilters and will soon be available in
xy-VSFilter and XySubFilter as well.
Since the beginning, many features in ASS scale relative to or are
otherwise affected by the storage resolution of the video file the
subs are bundled with. Adjusting subs for different video resolutions
traditionally took non-trivial effort. Of course this behavior must be
kept by default to preserve compatibility with existing files. But now,
setting both of the new headers to a positive, non-zero value will
replace the video storage resolution with the specified resolution for
the whole file, allowing easy reuse across all encodes of the same
display aspect ratio. This includes PAR effects, so reuse across
anamorphic and non-anamorphic releases is possible too.
Apart from that, some notes for package maintainers:
* for ASS_FEATURE_WRAP_UNICODE to be usable at runtime, libass must be
linked against the new optional dependency libunibreak whose source
currently resides at https://github.com/adah1972/libunibreak
* switching to a non-recursive build means it is no longer possible to
invoke make in subdirectories. However this wasn’t really useful
anyway and everything else, including uninstalled binary locations,
was kept unchanged.
* reminder: as announced last release more keys are now authorized for
signing release tags and tarballs; a signature of any one of those
keys is sufficient. See the MAINTAINERS file in the last or this
release’s tarball for a complete list and more details.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This release brings a new `ASS_FEATURE_WHOLE_TEXT_LAYOUT` API toggle,
brings an important API change on (only) Microsoft's Win32 platform to enable
arbirtrary paths to be used rather than only ANSI ones, fixes an incompatibility
with FreeType versions >= 2.11.1 on Win32 and brings many more bug and
compatibility fixes as well as other improvements.
API users are highly encouraged to pay special attention to the following points:
* The documentation has been expanded and multiple errors in it have been fixed.
It may be worthwhile to reread the documentation for all functions you are using
(or all of it). If you still have questions afterwards or spot an error,
please contact us so the docs can be further improved.
* For those on Win32 only (other platforms do not
require special handling of the path's encoding):
The new support for arbitrary paths via the new dual encoding used
in the majority of our API is mostly backward compatible, i.e. continuing
to use `fopen` ANSI paths works mostly as well (or bad) as before except
when there are actual on-disk name collisions. However, the other way around,
using the new encoding with older libass binaries, will in general fail
unless the paths happen to be pure 7bit US-ASCII.
If you want to make use of arbitrary paths but also wish to continue to support
older libass versions, you should continue to always use the `fopen`
encoding if `ass_library_version() < 0x01502002`.
Technically, this should be accompanied by an increase in the minor soname version,
but there is none because the change is Win32-specific and the minor soname version
is not even used by the dynamic linker in common MS Windows setups.
Signed-off-by: Oleg Oshmyan <chortos@inbox.lv>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Another bug fix release without API or ABI changes, mainly to
fix more known 0.15.0 and 0.15.1 regressions. But as a bonus,
it is now possible to build the DirectWrite system font provider
for Microsoft's Universal Windows Platform (UWP).
Two known minor 0.15.x DirectWrite system font regressions remain:
* when a font is attached/memory-loaded but a different (non-attached)
style of the same font is used by the subtitles
(only the attached style[s] will be used;
this also affects Core Text since 0.13.0 but not Fontconfig);
* in the unlikely case that the full name of a system font
equals the _family_ name of another system font
(only the family name matches will be found).
Also please note that our IRC channel #libass has moved from freenode.net
to Libera.Chat, and all presence on freenode.net has been fully retired.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
\t with no parantheses inside \t() resets the animation parameters
of the \t() for subsequent tags, so they are animated as if the \t()
was the single-argument version regardless of the actual number
of arguments the \t() has.
Equivalently, you could say parentheses are implied for \t inside \t().
For example, \t(20,60,\frx0\t\fry0\frz0) animates \frx from 20 to 60 ms
and animates \fry and \frz for the whole duration of the line,
just like \t(20,60,\frx0)\t(\fry0\frz0) or \t(20,60,\frx0\t(\fry0\frz0)).
Technically, VSFilter simply resets the animation parameters for any \t
it encounters but parses the embedded tags only if the \t has the right
number of arguments. However, top-level animation parameters don't matter
because top-level tags are not animated, while any nested \t that has
parentheses terminates the containing \t because they share the closing
parenthesis, so the fact that a nested \t with empty parentheses or with
at least four arguments changes the animation parameters also doesn't
matter because the containing \t immediately ends and the changed
parameters have nothing to apply to. Thus the only situation where
this has a visible effect is a nested \t without parentheses.
Closes https://github.com/libass/libass/pull/296.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4892
(stack overflow on deeply nested \t()).
This is possible because parentheses do not nest and the first ')'
terminates the whole tag. Thus something like \t(\t(\t(\t(\t() can be
read in a simple loop with no recursion required. Recursion is also
not required if the ')' is missing entirely and the outermost \t(...
never ends.
See https://github.com/libass/libass/pull/296 for more backstory.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
As assigned by [1]. Unfortunately I only learned of the CVE assignments
after the release.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Not all API users will keep the event list on seeking. This also gives
the opportunity to API users to handle severely broken files with
duplicate ReadOrder entries. (It is not known whether this is really
needed, however VSFilter does not deduplicate using the ReadOrder
field.)
|
|
|
|
|
|
|
|
|
| |
It's always such a bother to write the changelog on release. And in
fact, there is no reason why the changelog should be written on release.
It's easier to edit it as we commit fixes or features.
I'm adding the changelog entries for the past two commits, and in the
future, we should add entries as we commit bug fixes or new features.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Cache pre-rasterized vector clip masks, big speedup if vector clipping
is used extensively.
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Update changelog and version number in configure.ac.
|
|
|