CARVIEW |
Select Language
HTTP/2 200
date: Fri, 18 Jul 2025 21:47:34 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"18f754e73aaafb8be4454230b1bd74d0"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=51yiueTtoLA%2Fgcdzt2oONYo042k42Ruqn6sqBHIvEAPnuB523nvoYaqaeM%2FyD7%2Bzk0xCFL2BXcnhc%2FgVzUzpupXasvZHz%2BZwCpRE5k9fE6snktYnHNwekzEE5KeXbQCiCKdcQTIEIR4G1vVoiEmSXnaBZfSy8rpbyJoL8wFnoT98Sibcf%2BPuG6R7mdLTcU%2Fhe891l2o7aGXfoS3Zg5VWyntNqxsAs0%2BWSqBAV8nZtZyIBXG4PXzdQUVFCAxbzbX1mN1IKXjEr9wZITRpsG741Q%3D%3D--ILh17gnL3lFr0UF2--Efax6Cag3B4ZRJoCiVbOwg%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1310903634.1752875254; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 21:47:34 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 18 Jul 2026 21:47:34 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: B066:39C260:1A8529:2322B8:687AC0F5
ABI API changes · libass/libass Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 232
ABI API changes
Oneric edited this page May 9, 2024
·
5 revisions
Tracking pending ABI/API changes which aren't worth a break on their own and a "wishlist" in case we ever need to make larger API overhaul for some reason.
ABI break to be rolled up into the next one:
- v4++ fields, see PR #651
Small API cleanups:
- Remove
treat_fontname_as_pattern
fromASS_Style
. It's a noop, but currently still used by MPlayer and in the past by mpv. Ideally MPlayer should receive a patch first. Unlikely to ever have been used by others.
API wishlist in case there needs to be larger break anyway:
- Split
ass_set_margins
into two distinct interfaces to allow pan&scan and use of any remaining monitor margins at the same time - Prefix all public macros and enums with
ASS_
. Currently the image type inass.h
and almost everything fromass_types.h
lacks such a prefix. - Use more correct types, like
size__t
instead ofint
for element counts, correct signedness, don't useint
, which is only >= 16bits forass_library_version
which already currently requires at least 32 bits, etc - Return error codes or similar for all API which can possibly fail (instead of mostly just
void
now) - Remove
sizeof(ASS_Style)
andsizeof(ASS_Event)
from ABI and API, to make manual style and event creation and access more robust and less prone to cause ABI-breakages.
E.g. we could mandate use of accessor functions instead of direct array access to be able to add new fields at the bottom. Or if we also want to be able to freely reorder fields and normalise set values we could provide setter and getter functions similar to fontconfig'sFcPatterGet*
.- furthermore, on platforms which do not record the minor library version of linked to dependencies, any kind of struct extensions can complicate things. Since neither the struct nor its members exist as symbols in the shared library the incompatibility with older minor versions is not detectable from the binary itself and requires keeping additional metadata around. Attempts to use incompatible versions at runtime will lead to out-of-bounds reads and writes.
- change how
ass_set_font_scale
is applied by default. Currently its default is to affect all events and there’sASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE
to apply it only to events looking like regular dialogue. This is unlikely to be desired and inconsistent with what we do for style overrides. Thus either fully match style overrides and only apply selectively/fully when enabled withASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE(_FULL)
, or apply selectively by default and provideASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE_FULL
to apply unconditionally. to apply either selectively by default, or fully matchass_set_style_overrides
- make calling
set_storage_size
mandatory requiring an explicit opt-out via0, 0
and if not called fail like for unset frame size to avoid accidental ASS incompatibilities - support RGB output to (ease) support(ing) colour glyphs (see issue #381) (But how should the glyph's colour interact with colours specified by ASS? They are not supported by VSFilter)
- reconsider memory fonts being in
ASS_Library
(all other font stuff in in the renderer and attached fonts should be in the track) - drop all deprecated API
You can’t perform that action at this time.