summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE/build.yml109
-rw-r--r--.github/ISSUE_TEMPLATE/crash.yml105
-rw-r--r--.github/ISSUE_TEMPLATE/question.md9
-rw-r--r--.github/ISSUE_TEMPLATE/wrong-rendering-report.yml131
-rw-r--r--.github/workflows/ghci.yml401
-rw-r--r--.github/workflows/meson.yml225
-rw-r--r--.gitignore12
-rw-r--r--.travis.yml65
-rw-r--r--Changelog126
-rw-r--r--MAINTAINERS12
-rw-r--r--Makefile.am55
-rw-r--r--Makefile_util.am74
-rw-r--r--README.md35
-rw-r--r--RELEASEVERSION1
-rw-r--r--checkasm/arm/checkasm_64.S217
-rw-r--r--checkasm/be_blur.c67
-rw-r--r--checkasm/blend_bitmaps.c104
-rw-r--r--checkasm/blur.c192
-rw-r--r--checkasm/checkasm.c815
-rw-r--r--checkasm/checkasm.h338
-rw-r--r--checkasm/rasterizer.c210
-rw-r--r--checkasm/x86/checkasm.asm473
-rw-r--r--compare/Makefile.am7
-rw-r--r--compare/README.md30
-rw-r--r--compare/compare.c415
-rw-r--r--compare/image.c9
-rw-r--r--configure.ac267
-rw-r--r--fuzz/ass.dict193
-rw-r--r--fuzz/fuzz.c316
-rw-r--r--gen_defs.py12
-rw-r--r--libass.pc.in6
-rw-r--r--libass/Makefile.am63
-rw-r--r--libass/Makefile_library.am75
-rw-r--r--libass/aarch64/asm.S280
-rw-r--r--libass/aarch64/be_blur.S150
-rw-r--r--libass/aarch64/blend_bitmaps.S162
-rw-r--r--libass/aarch64/blur.S485
-rw-r--r--libass/aarch64/rasterizer.S472
-rw-r--r--libass/ass.c355
-rw-r--r--libass/ass.h132
-rw-r--r--libass/ass/meson.build13
-rw-r--r--libass/ass_bitmap.c282
-rw-r--r--libass/ass_bitmap.h88
-rw-r--r--libass/ass_bitmap_engine.c204
-rw-r--r--libass/ass_bitmap_engine.h99
-rw-r--r--libass/ass_blur.c407
-rw-r--r--libass/ass_cache.c28
-rw-r--r--libass/ass_cache.h3
-rw-r--r--libass/ass_cache_template.h9
-rw-r--r--libass/ass_compat.h17
-rw-r--r--libass/ass_coretext.c261
-rw-r--r--libass/ass_coretext.h2
-rw-r--r--libass/ass_directwrite.c688
-rw-r--r--libass/ass_directwrite.h2
-rw-r--r--libass/ass_directwrite_info_template.h55
-rw-r--r--libass/ass_drawing.c315
-rw-r--r--libass/ass_drawing.h1
-rw-r--r--libass/ass_filesystem.c411
-rw-r--r--libass/ass_filesystem.h44
-rw-r--r--libass/ass_font.c697
-rw-r--r--libass/ass_font.h22
-rw-r--r--libass/ass_fontconfig.c19
-rw-r--r--libass/ass_fontconfig.h2
-rw-r--r--libass/ass_fontselect.c557
-rw-r--r--libass/ass_fontselect.h70
-rw-r--r--libass/ass_func_template.h130
-rw-r--r--libass/ass_library.c27
-rw-r--r--libass/ass_library.h6
-rw-r--r--libass/ass_outline.c366
-rw-r--r--libass/ass_outline.h55
-rw-r--r--libass/ass_parse.c638
-rw-r--r--libass/ass_parse.h20
-rw-r--r--libass/ass_priv.h9
-rw-r--r--libass/ass_rasterizer.c23
-rw-r--r--libass/ass_rasterizer.h14
-rw-r--r--libass/ass_rasterizer_c.c377
-rw-r--r--libass/ass_render.c1449
-rw-r--r--libass/ass_render.h66
-rw-r--r--libass/ass_render_api.c31
-rw-r--r--libass/ass_shaper.c434
-rw-r--r--libass/ass_shaper.h11
-rw-r--r--libass/ass_types.h178
-rw-r--r--libass/ass_utils.c244
-rw-r--r--libass/ass_utils.h99
-rw-r--r--libass/c/blur_template.h343
-rw-r--r--libass/c/c_be_blur.c73
-rw-r--r--libass/c/c_blend_bitmaps.c75
-rw-r--r--libass/c/c_blur.c74
-rw-r--r--libass/c/c_rasterizer.c33
-rw-r--r--libass/c/rasterizer_template.h236
-rw-r--r--libass/dwrite_c.h373
-rw-r--r--libass/meson.build149
-rw-r--r--libass/wyhash.h268
-rw-r--r--libass/x86/be_blur.asm426
-rw-r--r--libass/x86/blend_bitmaps.asm466
-rw-r--r--libass/x86/blur.asm308
-rw-r--r--libass/x86/cpuid.asm26
-rw-r--r--libass/x86/cpuid.h5
-rw-r--r--libass/x86/gaussian.asm0
-rw-r--r--libass/x86/rasterizer.asm424
-rw-r--r--libass/x86/utils.asm15
-rw-r--r--libass/x86/x86inc.asm309
-rwxr-xr-xltnasm.sh28
-rw-r--r--meson.build395
-rw-r--r--meson_options.txt13
-rw-r--r--profile/Makefile.am7
-rw-r--r--profile/meson.build10
-rw-r--r--profile/profile.c5
-rw-r--r--test/Makefile.am7
-rw-r--r--test/meson.build10
-rw-r--r--test/test.c24
111 files changed, 14540 insertions, 5240 deletions
diff --git a/.github/ISSUE_TEMPLATE/build.yml b/.github/ISSUE_TEMPLATE/build.yml
new file mode 100644
index 0000000..a44ad94
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/build.yml
@@ -0,0 +1,109 @@
+name: Build problem
+description: Report an issue building libass
+title: 'build: '
+labels: build
+assignees: []
+
+body:
+ - type: markdown
+ attributes:
+ value: >
+ Thanks for filing an issue!
+ To help us determine what's causing your issue, please take your time to read
+ and fill out everything with as much detail as you can.
+
+ If you're encountering the issue with an old version of libass,
+ please retest with current git master or the latest release if possible.
+
+ - type: input
+ id: libass-version
+ validations:
+ required: true
+ attributes:
+ label: libass version
+ description: >
+ What version of libass are you encountering this issue on?
+ Ideally the full git commit hash is referenced or the
+ exact release number if building from a release tarball.
+
+ - type: input
+ id: libass-regression
+ attributes:
+ label: Is it a regression?
+ description: >
+ If known: Did previous libass versions also have the same issue?
+ Or is this a recent change (since when)?
+
+ - type: input
+ id: config-cmd
+ validations:
+ required: true
+ attributes:
+ label: How did you invoke configure?
+ description: >
+ Please show the full invocation with all
+ arguments and set environment variables.
+
+ - type: textarea
+ id: system
+ validations:
+ required: true
+ attributes:
+ label: System Information
+ description: >
+ Tell us what system you were building on and
+ what system you were building for if different.
+ Include the CPU architecture, OS version, update level if applicable
+ and other relevant information.
+ placeholder: |
+ examples:
+ - building on and for MacOS 10.5 with a 64bit PowerPC CPU
+ - cross-building on Debian 10 Buster with a big-endian 32bit MIPS CPU
+ for 32bit x86 MS Windows XP SP3 using mingw-w64
+ - ...
+
+ - type: textarea
+ id: toolchain
+ validations:
+ required: true
+ attributes:
+ label: Toolchain
+ description: >
+ What compiler and linker did you use?
+ Which versions of those *(run e.g. `gcc --version` and `ld -V`)*?
+
+ - type: textarea
+ id: error-log
+ validations:
+ required: true
+ attributes:
+ label: Log of the error
+ description: >
+ Copy the log of the error messages you encountered and make sure to
+ include also plenty of the surrounding log lines.
+ Also tell us what exact command resulted in the error.
+ placeholder: |
+ ```
+ <log here>
+ ```
+
+ # Uploads are only possible in textareas not inputs
+ - type: textarea
+ id: config-log
+ attributes:
+ label: Configuration log
+ description: >
+ Sometimes the above information may not be enough to determine what went wrong
+ and we may ask you to upload the `config.log` file which was generated after `configure`
+ was run. It contains verbose information about the configuration process and determined
+ system information. You can also already upload this file now to save some time later.
+
+ Do **not** copy paste the contents into the below field!
+ Instead rename `config.log` to `config.log.txt` and upload the renamed file.
+
+ - type: textarea
+ id: additional-info
+ attributes:
+ label: Additional info
+ description: >
+ Feel free to add anything else that may be useful.
diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml
new file mode 100644
index 0000000..4c83097
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/crash.yml
@@ -0,0 +1,105 @@
+name: Crash Report
+description: Report a crash
+title: 'Crash: '
+labels: bug
+assignees: []
+
+body:
+ - type: markdown
+ attributes:
+ value: >
+ Thanks for filing an issue!
+ To help us determine what's causing your issue, please take your time to read
+ and fill out everything with as much detail as you can.
+
+ If you're encountering the crash with an old version of libass,
+ please retest with current git master or the latest release if possible.
+
+ - type: input
+ id: libass-version
+ validations:
+ required: true
+ attributes:
+ label: libass version
+ description: >
+ What version of libass are you encountering this issue on?
+ If you aren't sure how to find this out, give precise information
+ on your player, its version and where you got the player binary from.
+
+ If you uploaded a correct screenshot for comparison and haven't told us already,
+ please also specify what renderer and which version of it gave you the correct result.
+
+ - type: input
+ id: libass-regression
+ attributes:
+ label: Is it a regression?
+ description: >
+ Did previous libass samples render the sample better?
+ Or is this a recent change (since when)?
+
+ - type: textarea
+ id: issue-sample
+ validations:
+ required: true
+ attributes:
+ label: ASS Sample
+ description: >
+ Please provide a sufficient sample to reproduce the crash.
+
+ At minimum this will be an excerpt of an ASS file; don't forget
+ to include the relevant Dialogue and Style lines.
+ The excerpt should basically be a fully functional ASS file in itself.
+ If you can’t make an excerpt, we can work with a full ASS file
+ if you tell us the time at which the problem occurs.
+
+ If you see the problem only with a particular video file that contains subtitles,
+ try to upload a short cut from the video file that we can play to see the problem.
+ You can use tools such as MKVToolNix to make a smaller cut from a large file.
+ placeholder: |
+ If it isn't too long paste the ASS excerpt enclosed in triple backticks as below, or upload a sample file
+
+ ```
+ [Script Info]
+ ```
+
+ - type: dropdown
+ id: issue-sample-font
+ validations:
+ required: true
+ attributes:
+ label: Special Fonts
+ description: >
+ If a particular font is needed to see the wrong rendering,
+ upload it as a zipped file inside the previous textarea if you have permission to do so.
+ If it is a font freely available on the Web, you can instead give a link to it.
+ options:
+ - I uploaded or linked to the required font
+ - The issue doesn't depend on a specific font
+
+ - type: textarea
+ id: system
+ attributes:
+ label: System Information
+ description: >
+ Tell us what system you're seeing the issue on (including the OS update level if applicable).
+ If VSFilter and libass screenshots were taken on different systems, give the info for both.
+ placeholder: |
+ OS: *(\*Linux, MacOS, Windows, …)*
+ CPU: *(32 or 64Bit AMD/Intel x86, ARM, POWER, …)*
+ e.g. MacOS 10.5 with a 64bit x86 (Intel) CPU
+
+ - type: textarea
+ id: log
+ attributes:
+ label: Log and Stacktrace
+ description: >
+ A complete log and a stacktrace with debugging symbols is very helpful to find out what's going wrong.
+ If you have logs regarding the issue please include them. Eg for [mpv](https://github.com/mpv-player/mpv),
+ you can obtain a log by adding `--log-file=output.txt` when playing the affected file.
+
+ - type: textarea
+ id: additional-info
+ attributes:
+ label: Additional info
+ description: >
+ Feel free to add anything else that may be useful.
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
new file mode 100644
index 0000000..2c249a4
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -0,0 +1,9 @@
+---
+name: Question
+about: Question about libass or libass usage
+title: ''
+labels: question
+assignees: ''
+
+---
+
diff --git a/.github/ISSUE_TEMPLATE/wrong-rendering-report.yml b/.github/ISSUE_TEMPLATE/wrong-rendering-report.yml
new file mode 100644
index 0000000..23519bd
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/wrong-rendering-report.yml
@@ -0,0 +1,131 @@
+name: Wrong rendering report
+description: Report subtitles that look wrong (different from VSFilter)
+title: 'Rendering: '
+labels: compatibility
+assignees: []
+
+body:
+ - type: markdown
+ attributes:
+ value: >
+ Thanks for filing an issue!
+ To help us determine what's causing your issue, please take your time to read
+ and fill out everything with as much detail as you can.
+
+ If you're encountering the problem with an old version of libass,
+ please retest with current git master or the latest release if possible.
+ Also, if you have the chance to:
+
+ **Compare to VSFilter**
+
+ Before reporting an issue, if possible, check what your file looks like
+ in a video player that uses VSFilter to render subtitles (for example, MPC-HC).
+ If it looks the same, even if it still feels wrong, this is probably intentional
+ and not an issue with libass.
+ Note, that “xy-VSFilter with libass” is not a VSFilter-based ASS renderer
+ and should thus **not** be used as a comparison.
+
+ - type: textarea
+ id: issue-screenshots
+ attributes:
+ label: Screenshots
+ description: >
+ If possible, add a screenshot of the file in libass (mpv, VLC, Kodi, MPlayer) that shows the
+ wrong rendering, and a screenshot of the same file in a different renderer/v