Skip to content

Releases: fengalin/media-toc

v0.7.0

01 Oct 21:30
Compare
Choose a tag to compare

New Features

  • Allow seeking and range playback during range playback (#149).
  • Allow pausing during range playback (#149).

Fixes

  • Workaround an issue with PlaybackPipeline since GStreamer 1.18 (c48af1c).
  • Remove output file when an error occurs during text export (4a9374c).
  • Fix already borrowed panic when loading another media (#151).
  • Fix panic seeking when the stream is not ready (66af86d).
  • Disable open action from menu while exporting / splitting (c2d24af).
  • Fix panic closing app when a question is asked (de6f553).
  • Fix split filename when tags are missing (d1fed5d & 487b3eb).
  • Fix overflow exporting to CUE sheet (cd88c58).
  • Fix stream tags handling (e5bfcb1).
  • Fix infinite loop splitting a chapter-less media (bc916ba).
  • Prevent the user from accidentally changing chapter when not on the playback perspective (8a4aec9).
  • Split: workaround for decoders advertising random stream ids (b200922).
  • Split: temporary workaround for some tracks with a toc (383f6f0).
  • Split pipeline: remove unneeded queue (59f9287).
  • Use weak references in closures / callbacks (ebebec1).
  • Fix AudioBuffer not draining (230cf7b).

Other Improvements

  • Use Futures in the UI (#146).
  • Refactor WaveformRenderer as a clean state machine (#150).
  • Implement media event handler as a state machine (ab70b25).
  • Revert to using audio playback ts instead of frame time for current sample (0fc25df).
  • New types: track caller to ease debugging (89dfac9).

Limitations

  • When exporting the TOC to a Matroska container, subtitles are not included in the resulting file. See these issues: #116 & #136.
  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.
  • UI labels are not translated on macOS. See #124
  • Application icons are not displayed on Windows & macOS.

v0.6.0

24 Jul 13:28
Compare
Choose a tag to compare

New Features

  • Allow cancelling export / split (#115).
  • Ask for confirmation before overwriting an existing file (#118).

Other Improvements & Fixes

  • Fixed accels catching keystrokes when editing a chapter's title (#145).
  • Fixed tag handling (#135 & #139).
  • Fixed panics when the export / split target file is read only (9cd3b5d).
  • Enhanced cursor convergence after an in-window seek (#143).
  • Fixed a waveform hang after an audio stream change and a seek forward (#137).
  • Fixed UTF-8 labels on Windows (3915ee3).
  • Added benches and tried different approaches to improve waveform rendering CPU usage (#142, and many others in the branch https://github.com/fengalin/media-toc/tree/draw_each_frame).
  • Improved UI architecture (#115, #129, #134, #145 and many individual commits). Only the MainController is shared as a Rc. Each controller is paired with an XXXDispatcher which handles registration of signals and callbacks. Messages are passed for some controller interactions.
  • Used new types in place of raw numeric variables for timestamps, sample indices, sample ranges and durations (#141). This should help readability and correctness.
  • Use LTO in release mode (07afb59).
  • Simplified the waveform rendering code.
  • Many other code improvements.

Limitations

  • When exporting the TOC to a Matroska container, subtitles are not included in the resulting file. See these issues: #116 & #136.
  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.
  • UI labels are not translated on macOS. See #124
  • Application icons are not displayed on Windows & macOS.

v0.5.1

05 Jun 20:29
Compare
Choose a tag to compare

New Features

  • Spanish translations (thanks to @XTR81).

Other Improvements & Fixes

  • Fix dependency on nom (bc2e06a).
  • Avoid duplicating streams identifiers (1d79377).

Limitations

  • When exporting the TOC to a Matroska container, subtitles are not included in the resulting file. See this issue.
  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.
  • UI labels are not translated on macOS. See #124
  • Application icons are not displayed on Windows & macOS.

v0.5.0

23 May 10:23
Compare
Choose a tag to compare

New Features

  • It is now possible to select the streams to export (#94).
  • Add application icons: the big, the mid-size, the small and the symbolic.
  • Add key accelerators. See the Readme file for a list.
  • Add a desktop file for DE integration (8cc5fad).
  • Add install and uninstall scripts for XDG compliant desktops (#123).
  • Restore application's configuration: UI dimensions, video/audio paned position, chapters list panel visibility, last opened media directory & hardware acceleration (#122).

Other Improvements & Fixes

  • Activate hardware acceleration by default. If the video sink can't synchronize, hardware acceleration is automatically disabled. (#121).
  • Add a CLI parameter to deactivate hardware acceleration (#121).
  • Reduce the initial UI dimensions so that the application is usable at 1360x768 (5b6aee2)
  • Use nom for formats and timestamp parsers (#79).
  • Many other fixes.

Limitations

  • When exporting the TOC to a Matroska container, subtitles are not included in the resulting file. See this issue.
  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.
  • UI labels are not translated on macOS. See #124
  • Application icons are not displayed on Windows & macOS.

v0.4.1

05 Apr 12:54
Compare
Choose a tag to compare

This is a bug fix release.

Improvement & Fix

  • Fix Matroska export requirements check. Matroska export was incorrectly discarded when the micro part of GStreamer version was not 1.
  • Add tool tips.

Limitations

  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.

Approximate

29 Mar 16:30
Compare
Choose a tag to compare

New Functionalities

  • Display chapters boundaries on the waveform (#83) and allow dragging them to modify their position (#78).
  • Display messages in the UI (#104). This includes errors and completion information.
  • Localize labels and messages (only English & French available for now).

Other Improvements & Fixes

  • Give more context around the cursor in paused mode (#103). In paused mode, after seeking or selecting a chapter, the cursor is now centred when possible.
  • After opening a file, display the waveform as soon as enough samples are available (#100). Previously, the user had to switch to play for the waveform to display.
  • Reworked the UI for Export and Split. There are now dedicated perspectives. Options come with details and hints indicating how to activate them when necessary.
  • Fixed short hangs when the waveform is scrolling (#102).
  • Display a message when GStreamer can't be initialized.
  • Use a logger for messages in the console.
  • Use symbolic icons.
  • Many bug fixes.

Limitations

  • Exporting the TOC to a Matroska container requires gst-plugins-good 1.14 or above.
  • Prior to version 1.14, the GStreamer decoding element used for media playback enters a loop after the end of stream which causes high CPU usage.

Stoker

10 Feb 14:16
Compare
Choose a tag to compare

New Functionalities

  • Allow selecting the audio / video streams to display (#46).
  • Optionally specify the media to open on the command line (#82).

Other Improvements & Fixes

  • Adapt waveform time indicators to HiDPI screens (#68).
  • Miscellaneous improvements to the chapters list: add an auto scrollbar (bbd60d3) & align times to the right (c03a4cb).
  • Avoid briefly selecting previous chapter when clicking on a different chapter (8a40124).
  • Avoid some image copies during waveform rendering (8ac48b8).
  • Handle capabilities changes for the audio stream (#23).
  • Switch to Rust stable toolchain (119e1f7).
  • Add CI for macOS (9d9fc87, 4af2e83 & 4af2e83).
  • Upgrade minimum GTK requirements to 3.18 (9d9fc87 & 5491ba2).

Limitations

  • Exporting the TOC to a Matroska container requires this patch. The patch should be included in the 1.14 release of gst-plugins-good. Meanwhile, you can use mkvmerge as explained in this how-to.
  • decodebin3, the GStreamer decoding element used for media playback, enters a loop after the end of stream which causes high CPU usage. A patch was submitted and should be included in release 1.14 of gst-plugins-base.

The Dub Room Special!

12 Jan 18:54
Compare
Choose a tag to compare

New Functionalities

  • Export audio chapters to lossless or lossy compression formats (#90 & #91).
  • Ease chapter boundaries identification: in paused mode, right-clicking on the waveform allows playing the media from the clicked position until the end of the displayed waveform (#84).

Other Improvements & Fixes

  • Export tags with audio chapters (#87).
  • Play / Pause / Open media by clicking on the video widget (2173328).
  • Don't export upstream TOC to audio chapters (#88).
  • Use gtk::WidgetExt::add_tick_callback instead of a timer to refresh the waveform (#36).
  • Fix incorrect chapter addition (#80).
  • Fix integer overflow while seeking a lot (#86).
  • Fix waveform disappearing after EOS with some media (204a1d8).

Limitation

  • Exporting the TOC to a Matroska container requires this patch. The patch should be included in the 1.14 release of gst-plugins-good. Meanwhile, you can use mkvmerge as explained in this how-to.

Das Rheingold

08 Dec 11:49
Compare
Choose a tag to compare

This version proposes a basic set of functionalities: defining a table of contents (toc) for a media, exporting the toc to a Matroska container (under certain conditions, see the README file) or extracting audio files, one file per chapter. These were the original objectives for media-toc.