Releases: fengalin/media-toc
Releases · fengalin/media-toc
v0.7.0
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
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 aRc
. Each controller is paired with anXXXDispatcher
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
New Features
- Spanish translations (thanks to @XTR81).
Other Improvements & 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.5.0
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
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
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
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 usemkvmerge
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 ofgst-plugins-base
.
The Dub Room Special!
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 usemkvmerge
as explained in this how-to.
Das Rheingold
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.