Comments (13)
Sign-SaberWork is right- or middle-aligned? Duplicate of (the remaining sub-issue of) #16.
from libass.
Style: Sign-SaberWork,Embryonic Inside-Mod,160,&H00FFFFFF,&H000000FF,&H00FFFFFF,&H00000000,-1,0,0,0,100,100,0,0,1,0,0,5,10,10,10,1
Style: Sign-SaberWork2,Embryonic Inside,160,&H00FFFFFF,&H000000FF,&H00FFFFFF,&H00000000,-1,0,0,0,100,100,0,0,1,0,0,5,10,10,10,1
from libass.
Yeah, I’d just compared the \pos to the screenshot and deduced it was \an5 when you replied. You haven’t copied enough “Saber” lines to be completely sure, but it must be #16.
from libass.
those are the only lines with the SaberWork styles in the script.
from libass.
Yeah, that was a derp.
I’m struggling to understand which line produces which part of the image. What I can say for sure is that the first line definitely has \fsp and thus definitely is misplaced as in #16.
from libass.
What happens in VSFilter:
- VSFilter translates the
\h
used in the script to U+00A0. - VSFilter selects the font specified in the script, Embryonic Inside.
- VSFilter calls GDI’s
TextOut
function to get the outline for the glyph run containing the U+00A0. - GDI does not find U+00A0 in the currently selected font.
- ??? Another font is selected.
- GDI uses the U+00A0 outline from the other font.
What currently happens in libass:
- ass_parse selects the font specified in the script, Embryonic Inside.
- ass_parse translates the
\h
used in the script to U+00A0. - ass_font translates U+00A0 to U+0020 “to avoid problems”.
- ass_font happily finds U+0020 in the currently selected font.
- libass uses the U+0020 outline from Embryonic Inside.
Two things need to be done:
- The U+00A0-to-U+0020 substitution needs to be removed. This is easy. Ironically, this will also resolve #2, as I will explain there in a moment.
- The fall-back font needs to match GDI’s. I am investigating; it seems this may be more complicated than I thought initially.
from libass.
Interesting. I added this substitution not for fun though, but to avoid rendering issues with various scripts. But that was back in 2009, libass has changed a whole lot since then.
from libass.
The \h issue is also very visible in JoJo’s (and probably Commie’s) JoJo episode 20 at 12:44.
Also, sorry for the “referenced this issue from a commit” spam! ._. GitHub adds one every single time I push a rebased or reworded or very slightly modified commit. I wish it would just delete the previous “referenced” line when it does that.
from libass.
This looks to be fixed by @astiob's 2014 commit, or at least the sign looks pretty sensible now and I vaguely recall it being a fine mess:
from libass.
That commit never landed in master. (Maybe I was afraid to suggest we seriously make master always fall back on Arial. Maybe I was worried about glyphs not supported by Arial.)
This is what the Carnival Phantasm sample looks like in VSFilter:
from libass.
And the JoJo sample:
from libass.
So what? Ffmpeg looks like is affected https://trac.ffmpeg.org/ticket/5851#comment:4
I don’t see anything in that ticket relevant to this bug.
But in general, FFmpeg is, of course, affected because it uses libass.
from libass.
As tracked in #550, this probably depends on the \fe
and/or the user’s locale (or more pertinently, the subtitle author’s locale, which might be estimated using the track’s language if we ever start getting language information from demuxers).
from libass.
Related Issues (20)
- How to handle auto wrap when burn chinese subtitle with ffmpeg HOT 1
- Rendering: The same Ass script using the \blur tag performs abnormally on the Android platform, but on iOS HOT 1
- Rendering: Drawing without m isn't rendered by VSFilter HOT 2
- Why is the macro definition 'PARSE_START if (0)' executed HOT 1
- image question HOT 4
- A subset font has ligatures applied in VSFilter even without complex scripts HOT 1
- Some questions about ASS File Format Guide HOT 7
- Rendering: English glyph for Segoe UI Variable Display is wrong from yesterday HOT 2
- \ko fails to remove outline from shadow HOT 3
- Rendering: performance issue while rendering running rainbow animated subtitles HOT 4
- Rendering: Wrong font used for mpv OSD on Fedora 39+ HOT 2
- Multiple \pos tags in one line, any way to use them? HOT 2
- Inline fallback fonts should be sized to main font’s EM height, not line height
- How to blend ASS_Image to a rgba bitmap HOT 5
- Rendering: natural line break punctuation position in RTL languages HOT 2
- Consider adding SHSTK support HOT 4
- [DirectWrite] Does not select the right font when 2 fonts have similar attributes HOT 4
- API to discard older events from memory HOT 2
- Rendering: Different case for a non-ASCII character doesn't find the font
- Rendering: Difference in font size with Roboto Medium in VSFilter and libass HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libass.