Whew... it's been a while. This release contains some more involved changes, and they took a while to get ready.
BREAKING CHANGE
Storage of folds has been moved from the Line Folds
entry in the Project Properties to the Aegisub Extradata section. This has a number of advantages:
- Folds will be preserved when opening or editing subtitle files with older Aegisub versions that don't support folds.
- Folds will be preserved by automation scripts that re-insert every line.
- Folds do not break after adding or deleting lines using a text editor or other tools.
- In particular, merging changes using tools like git will not break folds.
- Copy/pasting lines also copies the fold status of the lines to some extent. This is impossible to solve in general, but it will work in simple cases, as long as the file is not saved between copying and pasting.
- With this, automation scripts have full control over folds. Refer to scripts like ConvertFolds for examples on how to interact with folds from Lua.
However, this breaks compatibility with the previous format, so folds saved with the old format will not work on this new version. If you need to transition from the old format to the new one, there are two possibilities:
- Use the ConvertFolds automation script (available in DependencyControl) to convert files with folds from the old version to the new version.
- If you need to move back and forth between formats, there is an intermediate state preserved on the extra_intermediate tag, with build artifacts here. This version will read and save folds in both formats.
Further Changes
- Add a visual tool for applying perspective transformations, or more generally any arbitrary transformation determined by four points.
perspective.mp4
The outer quad can be used to match the perspective of some perspective rectangle in the video, after which the inner quad can be aligned relative to that perspective. Use double-click and Shift/Ctrl/Ctrl+Alt/Ctrl+Alt+Shift-drag to move corners more efficiently. Note that Ctrl+click is also the action that selects multiple features at once, so take care when Ctrl-dragging to not accidentally select multiple features.
- Raise the resolution limit of the dummy video from 10000 to 100000. This can be helpful when rendering subtitles to an image and tracing that in an image editor, which is a simple way to convert text to a shape when other methods fail.
- Allow higher decimal precision in the style editor, and allow negative values of
\fsp
. Higher precision can be useful for scaling on anamorphic video and for setting\fsp0.01
to disable all ligatures, to name some examples. Edit: It turns out that renderers don't actually support negative spacing in styles, so this part will be reverted soon.
Fixes:
- Fix the grid in the visual x/y rotation tool when the video is not at 100% zoom, and for non-default values of
\fscx
or\fscy
. I'm continually amazed at how bugs like these can go unnoticed for years or even decades. - Fix the syntax highlighting for drawings breaking on empty clips.
- Also allow
+
andE
in numbers when syntax highlighting drawing coordinates to correctly highlight all numbers. - Fix subtitle grid columns not being resized correctly after changing the interface font size (#11).
- Fix a crash when clicking the header of the folds column in the subtitle grid.
- Fix a crash when double-clicking the top rightmost column separator in the hotkey configuration menu on Windows. (A very oddly specific bug, I know. Still, that was a consistent crash.)
- Fix the HDD audio cache provider after merging wangqr's audio changes. The fact that this took months to notice tells me that not a lot of people use that. Well, it's fixed now.
- Fix video zoom when the script resolution isn't equal to the video resolution.
- Remove the option for video panning and just enable it by default. The feature should be stable enough now, and putting it behind an option just confuses users.
- Deduplicate the automation script autoload path to fix #15 and TypesettingTools#168 .
- Fix the default color range in the VapourSynth video provider.
- Fix crash when loading Avisynth or VapourSynth after already having failed to load it once.
- Ship a version of Yutils that contains the fix in TypesettingTools/Yutils#1 .
Backend stuff:
- Do a CI build for every push to
feature
. Releases will still be uploaded here, but you can download work-in-progress builds from the actions page. - Revert the patch that enables the ffmpeg wrap to compile with SIMD extensions, since this was added upstream now.
- Instead, patch the (updated) ffmpeg wrap to detect the zlib subproject. This will make ffmpeg build with zlib on Windows, which will make Aegisub able to open PNG images and the like using FFMS (which didn't work before on builds using the ffmpeg wrap).
- Disable more debug checks on release builds (specifically, set
NDEBUG
, as was also done with the original MSVC build system). In particular, this will silence the various wxWidgets assertion errors that pop up in some weird edge cases. Many of these are actually harmless but confuse users, so they're being silenced now.
Even more detailed backend stuff (this is only for the sake of completeness and should only interest you if you're a maintainer)
- Also add regen dependencies for the icons in
src/bitmaps
- Authenticate the GitHub API requests when building the installer from the CI to not get rate limited
- Do some dirty fixes to make things compile with Boost 1.81. I'm not pulling the refactors from tgoyne/Aegisub:cmake for now since those would complicate all merges from that point onwards.
- Ship a builds of the DependencyControl modules that fix TypesettingTools/ffi-experiments#13 .
- Pin a version of the harfbuzz wrap before the commit that breaks Aegisub's ICU subproject