Giter Site home page Giter Site logo

Comments (5)

TheOneric avatar TheOneric commented on September 26, 2024

Is the “old version rom ubuntu” <= 0.15.2? If so, I strongly suspect the difference comes from the VSFilter-compatibility changes implemented in #441. As such they are intentional and the only right way to render real™ ASS since VSFilter is the authoritative reference. Existing ASS releases rely on exactly matching VSFilter and libass deviating from this in the past was a bug.
If you can check xy-VSFilter, feel free to test if the new result actually matches and please report if it doesn't.

If you are authoring ASS subtitles for distribution, it is strongly recommended to ensure compatibility with xy-VSFilter since this is the only stable target. Unfortunately, this means you cannot just use \fsp for complex shaped or (most?) BiDi text. Instead you can edit the font or manually insert scaled spaces as necessary.

If you are doing on-the-fly conversions from non-ASS formats you can either set Encoding=-1 in affected styles in the converter or enable ASS_FEATURE_WHOLE_TEXT_LAYOUT via libass API. However, note those extensions are both libass-specific and may be subtly tweaked in the future, i.e. unlike VSFilter-compatible ASS they do not guarantee pixel-perfect stable rendering in future versions. Also note, setting them affects more than just \fsp on multi-codepoint glyphs. Relevant documentation: WHOLE_TEXT_LAYOUT (permalink to version of the time of writing) and Encoding=-1.

from libass.

amanosatosi avatar amanosatosi commented on September 26, 2024

Is the “old version rom ubuntu” <= 0.15.2? If so, I strongly suspect the difference comes from the VSFilter-compatibility changes implemented in #441. As such they are intentional and the only right way to render real™ ASS since VSFilter is the authoritative reference. Existing ASS releases rely on exactly matching VSFilter and libass deviating from this in the past was a bug. If you can check xy-VSFilter, feel free to test if the new result actually matches and please report if it doesn't.

If you are authoring ASS subtitles for distribution, it is strongly recommended to ensure compatibility with xy-VSFilter since this is the only stable target. Unfortunately, this means you cannot just use \fsp for complex shaped or (most?) BiDi text. Instead you can edit the font or manually insert scaled spaces as necessary.

If you are doing on-the-fly conversions from non-ASS formats you can either set Encoding=-1 in affected styles in the converter or enable ASS_FEATURE_WHOLE_TEXT_LAYOUT via libass API. However, note those extensions are both libass-specific and may be subtly tweaked in the future, i.e. unlike VSFilter-compatible ASS they do not guarantee pixel-perfect stable rendering in future versions. Also note, setting them affects more than just \fsp on multi-codepoint glyphs. Relevant documentation: WHOLE_TEXT_LAYOUT (permalink to version of the time of writing) and Encoding=-1.

it was not completely removed? how to turn it on? i'm not good at tech so much.

from libass.

TheOneric avatar TheOneric commented on September 26, 2024

it was not completely removed? how to turn it on?

Are you doing on-the-fly conversions from other subtitle formats or are rendering the output of such a converter in your program?
If yes, the two methods are already described in my previous post. To be able to give more specific advise, please describe exactly what your usecase is and how you use libass.

If you are not doing one of those two and specifically if you are authoring native ASS files for distribution, I strongly discourage using or relying on any of those methods. It will break rendering in standard renderers, at most work with libass and even players using libass might not work unless some non-standard configuration is applied.

from libass.

amanosatosi avatar amanosatosi commented on September 26, 2024

Are you doing on-the-fly conversions from other subtitle formats or are rendering the output of such a converter in your program? If yes, the two methods are already described in my previous post. To be able to give more specific advise, please describe exactly what your usecase is and how you use libass.

If you are not doing one of those two and specifically if you are authoring native ASS files for distribution, I strongly discourage using or relying on any of those methods. It will break rendering in standard renderers, at most work with libass and even players using libass might not work unless some non-standard configuration is applied.

i see. could you guide me how to build aegisub with that 0.15.2 version? or the one that's used on avidemux 2.8.0 or vlc 3.0.11 vetinari?

from libass.

TheOneric avatar TheOneric commented on September 26, 2024

The original question of “why was it removed/changed” was already answered (changed for VSFilter incompatibility) and I linked docs on how to opt-in to VSF-incompatible modes and what consequences this has.

The revised question “why differs the result in Windows and Ubuntu” was already answered by yourself in your original post: you use different versions of libass in each OS.

I can't help you build and link other software, but plugging in an old version of libass isn't really a good solution and I again recommend to read the docs I linked before instead.

Since you did not describe your exact usecase, I am unable to give you any further help

from libass.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.