CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 13:26:18 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-repository-download: git clone https://github.com/libass/libass.git
etag: W/"920008aaa6f11faa67c092d9a23c7a54"
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=h5cc5Ve0xgPcV6HbCEfd7nzVYgqNfkPx353Pcu0Gpj2NiOrCrEII07Pq9MNxwHEkGBbjCrVZ%2Fg%2B8BrxozZmny77MxJKme1Ou3Jo542Egpx4dTkqxuceRhm474Szts5%2BirWWjJBdo8cKdZi2Vt%2FfwlM2C7ii7OR3fr%2FGESIPJyxcnpuF%2FPtG2uiOi1XABTQfmzy2ltLGOcBa4UpK9hjg5VlpLpXy64bwBKVRQBDicIwflbE2jOZ6UzC0jsuMgbqTrRzRABhKilxLisguisT8EAQ%3D%3D--iKwPExZGaEjRUG4D--rbpqLuG%2BV3ApBVdK49%2FKtw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1496134605.1753277177; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 13:26:17 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 13:26:17 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: CC1A:1A99C5:C64DE2:EB1DBC:6880E2F9
Introduce LayoutRes{X,Y} script headers · libass/libass@1a533e5 · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 232
Commit 1a533e5
Introduce LayoutRes{X,Y} script headers
Rendering ASS depends on the video’s storage resolution
for several tags. Thus transferring a subtitle file to a
different version of a video, with e.g. higher resolution
or anamorphic squeezing undone, requires adjusting all those
tags.
Affected are \be, \blur, \frx, \fry and if ScaledBorderAndShadow
is not set to "yes", also all tags related to border and shadow.
This locks all but simple subtitle files to a specific video
storage resolution. If one wants to release several different resolution
simultaneously, the same source is reencoded to undo anamorphic
squeezing, or a new higher resolution source appears, it is required
to manually adjust affected tags and each video version needs a
different subtitle file.
This is a pain point, and resulted in some releases just
relying on user overrides of players, or incompatibly patched
renderers to avoid the required manual adjustments.
By adding new headers, which will replace the original video storage
resolution in all calculations, authors will be able to create files
which can be reused across different resolutions as long as the display
aspect ratio stays the same. Hopefully this will also halt the spread of
incomapatible patches and overrides, which just result in broken files
and further ASS fragmentation.
For simplicity and to avoid surprises, LayoutRes* headers
only take effect if both are present and set to values larger
than zero.
If LayoutRes{X,Y} is set to corresponds to the actual storage resolution
of the video the subs are authored and initially released with, at least
the initial/main version will also be effectively compatible to older
renderers, which do not understand the new headers yet. This will grant
users some time to upgrade and minimise friction from this retroactive
format addition.
The header concept is also approved by some VSFilters and patches
for Cyberbeing/xy-VSFilter’s xy-VSFilter and XySubFilter are pending
with only implementation details being still up for discussion.
Integration into active Aegisub forks and possibly other common editors
will be pursued at a later date.
libass-specific:
Since API-users can initialise PAR, we must recalcute even existing
values when LayoutRes{X,Y} is set to ensure the sub-author-provided
values take precedence.1 parent 5b3fe27 commit 1a533e5Copy full SHA for 1a533e5
File tree
Expand file treeCollapse file tree
5 files changed
+30
-5
lines changedFilter options
- libass
Expand file treeCollapse file tree
5 files changed
+30
-5
lines changed+10Lines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
543 | 543 |
| |
544 | 544 |
| |
545 | 545 |
| |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
546 | 550 |
| |
547 | 551 |
| |
548 | 552 |
| |
| |||
848 | 852 |
| |
849 | 853 |
| |
850 | 854 |
| |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
851 | 861 |
| |
852 | 862 |
| |
853 | 863 |
| |
|
+7-1Lines changed: 7 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
| 27 | + | |
28 | 28 |
| |
29 | 29 |
| |
30 | 30 |
| |
| |||
392 | 392 |
| |
393 | 393 |
| |
394 | 394 |
| |
| 395 | + | |
395 | 396 |
| |
396 | 397 |
| |
397 | 398 |
| |
| |||
461 | 462 |
| |
462 | 463 |
| |
463 | 464 |
| |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
464 | 470 |
| |
465 | 471 |
| |
466 | 472 |
| |
|
+2Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
42 | 42 |
| |
43 | 43 |
| |
44 | 44 |
| |
| 45 | + | |
| 46 | + | |
45 | 47 |
| |
46 | 48 |
| |
47 | 49 |
| |
|
+8-4Lines changed: 8 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1002 | 1002 |
| |
1003 | 1003 |
| |
1004 | 1004 |
| |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
1005 | 1009 |
| |
1006 | 1010 |
| |
1007 | 1011 |
| |
1008 | 1012 |
| |
1009 |
| - | |
1010 | 1013 |
| |
1011 | 1014 |
| |
1012 | 1015 |
| |
| |||
3109 | 3112 |
| |
3110 | 3113 |
| |
3111 | 3114 |
| |
3112 |
| - | |
3113 |
| - | |
3114 |
| - | |
| 3115 | + | |
| 3116 | + | |
| 3117 | + | |
| 3118 | + | |
3115 | 3119 |
| |
3116 | 3120 |
| |
3117 | 3121 |
| |
|
+3Lines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
283 | 283 |
| |
284 | 284 |
| |
285 | 285 |
| |
| 286 | + | |
| 287 | + | |
| 288 | + | |
286 | 289 |
| |
287 | 290 |
| |
288 | 291 |
| |
|
You can’t perform that action at this time.
0 commit comments