github bjakja/Kainote v1.1.0-rc.1

pre-release5 hours ago

This is the first release candidate for Kainote 1.1.0. Please report any problems before the final release.

Kainote switches to semantic versioning with this release, so 1.1.0 is the next version after 1.0.0.1537.

Highlights

  • Linux build. Kainote now builds and runs on Linux (wxGTK) with GStreamer, FFMS2, SDL and VAAPI video output, SDL/PulseAudio audio, Wayland support, a portable runtime package and desktop integration (menu entry, icons, file associations).
  • Faster playback and editing. Frames are decoded ahead on a second thread, colours are converted on the GPU (new option "Convert video colours on the GPU", on by default; needs a video reload), libass subtitles are uploaded only where they changed, and scripts are parsed in the background. The grid and the editor draw on the GPU, and the audio cursor no longer redraws the whole waveform.
  • English is now the source language. Choosing a language with an unfinished translation now shows English for the missing strings, not Polish. Translations on Windows load again: before this release the shipped catalogues could not be found, so every language fell back to Polish.
  • Update checking. Kainote checks GitHub releases and tells you when a new version is out, with an option to include pre-releases. It does not download or install anything.
  • Complete package. The download includes the automation library (DependencyControl, ASSFoundation, Aegisub-Motion and others), dictionaries, themes, translations, CSRI renderers and the AVX build (KaiNote_AVX.exe).

New features

  • Real-time conversion of non-ASS subtitles, so libass can render them.
  • "LayoutRes" options in the Subtitles Info window.
  • Automatic encoding detection with uchardet.
  • Fonts embedded in ASS files, and fonts from a chosen external folder, are loaded into the font list (the folder is scanned in the background).
  • "Select all lines visible on video" in the grid context menu.
  • Kainote asks whether to reload when the subtitles are edited in another program.
  • Video zoom: "Turn off video zoom" in the video menu, zoom with the mouse wheel, and an option for the starting zoom percentage.
  • Filtering can be saved to ASS subtitles.
  • Automation: save the log to a file, reload a script quickly, and read the original text of a translation.
  • When a translation is saved, the translated file is named and the original text removed.
  • Line splitting adds the tags to every part, including tags between characters and the tags at the start of each wrap.
  • AV1 is decoded with dav1d instead of libaom, for better seeking.
  • Keyframe support in the GStreamer renderer (Linux).
  • A minidump.dmp is written after a crash.
  • File type icons now come from Kainote.exe itself; existing associations are migrated on start.

Fixes

  • Crashes: changing lines quickly while video is open; changing lines while karaoke plays; removing "N" from "\N" in karaoke mode; \k in plain text; running a script from a shortcut; validating a macro that does not exist; a use-after-free in the VSFilter instance.
  • A race between a colourspace change and frame copying in FFMS2 that could crash playback.
  • The playback thread no longer spins forever when a frame cannot be decoded.
  • Automation frames were rendered with the wrong subtitles.
  • Seeking during playback no longer races the playback thread.
  • Loud audio no longer clips at high volume: the slider now tops out at 150% instead of 8x gain.
  • Stereo sources play in stereo, the audio delay keeps millisecond precision (a negative delay used to skip twice its length), and the finished audio disk cache is reused instead of being decoded again on every open.
  • Committing a line no longer overwrites its times just because the start or end field had focus.
  • A keyframes file chosen before the video was opened is no longer dropped.
  • Frame 0 gets start time 0 (it used to be 5 ms, which put the line on frame 1). DirectShow and GStreamer use the same frame timing as FFMS2, and DirectShow supports keyframe stepping.
  • Undo: deleting lines from an automation script records an undo step, "replace checked" in Find & Replace is named correctly, the history is capped at 500 steps, and typing in the edit box merges into one step.
  • Embedded [Fonts] and [Graphics] sections survive loading and saving.
  • Font collector: CJK font names in the zip are marked as UTF-8, and non-UTF-8 MKV attachment names keep their extension.
  • SRT parsing, MicroDVD FPS, pasting names, the line number in the edit box, and the video position on the audio spectrum.
  • Filtering and trees: undo/redo with filtered or tree content, pasting trees, and pasting hidden lines from automation.
  • Automation: translation in some Lua scripts, cancelling finished scripts with a log, reloading a removed script, the progress dialog not closing, and "from subtitles" shown in the hotkeys list with no scripts loaded.
  • Visual tools: positioning with \move (including a missing + without times), the hydra gradient, releasing the mouse when no line is on screen, and the simple colour picker blocking the mouse or hiding the dropper.
  • Perspective Motion script fixes.
  • DPI scaling, moving the window between monitors whose positions changed, the style manager glitch on first edit, the time in the log window, dialogs drawing a second title bar, and dialog text wrapping.
  • Hangs on shutdown and mouse capture in popup menus.

Translations

  • New and updated translations through Weblate.
  • Mistranslated source strings were fixed while moving to English.

Under the hood

  • wxWidgets 3.3.3 replaces the old modified 2.9.4 snapshot on Windows.
  • Third-party libraries are fetched from upstream as submodules instead of being vendored.
  • CI builds Windows and Linux, runs unit tests, and produces the release package.

Full changelog: 1.0.0.1537...1.1.0-rc.1

Don't miss a new Kainote release

NewReleases is sending notifications on new releases.