Aegisub 3.4.0 Changelog

Released: December 18, 2024

Note: Aegisub 3.4.0 released ten years after the previous stable release 3.2.2., so there have been a very large number of assorted small changes. This changelog summarizes the more important ones.

Development

  • Port the build system to meson for all operating systems. Missing dependencies can be downloaded and built as subprojects, and builds can be run on the GitHub CI.
  • Various big internal refactors and C++ modernization that should make future development easier. In particular, switch to C++20.
  • Update various links (to the bug tracker, the update checker, etc.) in the application
  • Update various dependencies
  • Add an AppData file for linux packaging

Features

  • Add backends based on GDI and CoreText to the fonts collector
  • Update the default config to better reflect modern timing conventions
  • Remove the “Force BT.601” option and update the color matrix guessing. Color matrices should instead be forced using the YCbCr Matrix header.
  • Make the translation assistant skipping whitespace an explicit setting
  • Add configuration options for colors in the visual typesetting tools
  • Add DependencyControl, a package manager for automation scripts, to the Windows installer, but disable it by default due to the added security risk
  • Remove ASSDraw from the toolbar and the installer. For creating drawings in Aegisub, it is recommended to use the vector clip tool together with a “Clip to Shape” automation script.
  • Add .webm, .h264, .hevc, .opus, and .eac3 to the list of supported formats
  • Increase the default font size and update the list of resolutions
  • Handle flipped and rotated video in the FFMS2 video provider
  • Respect BOMs in subtitle files
  • Feed the entire subtitle file to uchardet to improve charset detection
  • Allow setting negative margins, which can be useful for positioning text without disabling libass’s style overrides
  • Make scrolling the subtitle grid with a touch pad smoother
  • Save the state of the “Show Original” toggle across restarts
  • Add an “Apply” button to the “Select Lines” dialog
  • Allow reading compressed subtitles from mkv files
  • Also collect fonts that are only used for drawings in the fonts collector

Lua API

  • Update moonscript to commit 491f235 (past version 0.5.0)
  • Add an argument type checker to Aegisub’s built-in modules
  • Add subtitles.script_resolution(), which returns the effective script resolution (falling back to defaults if the headers are not present)
  • Add aegisub.get_audio_selection() to get the current (possibly uncommitted) selection in the audio display
  • Add aegisub.set_status_text() to set the status bar text
  • Cancel karaoke templater execution immediately when an error occurs
  • Sort Automation menu items by their display name
  • Add automatic scrolling to Lua dialogs that are too large to fit on the screen
  • Fix some Lua dialogs being way too wide
  • Fix some crashes when cancelling scripts or when scripts fail
  • Fix a memory leak when cancelling scripts
  • Fix crashes when opening file open/save dialogs on Linux
  • Fix interacting with the clipboard on Linux
  • Fix the cleantags script/module for \k tags with noninteger durations
  • Fix dialog dropdowns that are empty by default on Mac

Bugfixes

  • Fix crash when deleting the last dialogue line from an automation script
  • Fix crash when splitting lines by karaoke
  • Fix issues with pasting unicode text
  • Fix a crash when opening a new file when the grid is not scrolled to the top
  • Fix the color picker’s cursor sometimes appearing in the wrong place in RGB modes
  • Fix a crash when reattaching video
  • Fix joining as karaoke
  • Fix the line order when splitting after current frame
  • Properly ignore ASS whitespace characters (newlines and non-breaking spaces) in the character counter
  • Fix crash when picking a language
  • Fix millisecond to centisecond conversion
  • Improve the UI layout on high DPI
  • Fix the audio scroll speed depending on the width of the audio display
  • Fix Move Down button in Export dialog
  • Fix some bugs in the PCM audio provider
  • Fix subtitle rendering with libass when the video resolution does not match the script resolution
  • Make the update checker use https via libcurl rather than manual http
  • Fix some false permission errors, e.g. in the fonts collector when copying fonts to a samba share
  • Fix the time-to-frame computation for constant frame rates (e.g. in dummy video)
  • Fix the overscan mask when using DPI scaling
  • Fix the overscan mask being half as thick as it should be
  • Fix a rare crash when interacting with the hotkey settings dialog
  • Fix automation scripts being loaded twice on e.g. portable builds
  • Fix a crash when a video provider reports an FPS denominator of zero
  • Fix webm and wmv files not being able to be opened by dragging them into Aegisub
  • Fix adding lead-in or lead-out being broken before first clicking into the audio display
  • Fix the descriptions for toolbar or context menu items being mismatched

Internationalization

  • Updates to the following translations:
    • Catalan
    • French
    • German
    • Italian
    • Polish
    • Simplified Chinese
    • Spanish
    • Traditional Chinese
    • Vietnamese