- Enable threading for ffmpeg decoder, should greatly improve speed
- [Breaking] Move
VideoDetails
struct fromy4m
module todecoder
module, since it is not specific to y4m - Add support for Ffmpeg decoder (requires Cargo
ffmpeg
feature, disabled by default)
- Add support for Vapoursynth decoder (requires Cargo
vapoursynth
feature, disabled by default) - Breaking change required to add a wrapper enum defining which decoder is being used
- Bump
rav1e
dependency to0.7
- Bump
y4m
dependency to0.8
- Finally release a new version because we can depend on rav1e 0.6.1
- Upgrade clap to 4.0
- Add frame limit arg to API
- [Breaking] Change
progress_callback
to take a &dyn Fn - Misc improvements including some speedups from rav1e
- Update to Rust edition 2021
- Bump to the final release of rav1e 0.5
- Bump other dependencies to latest versions
- Fix another inconsistency with rav1e's scene detection
- Improve precision of FPS calculation
- Fix an inconsistency with how rav1e's scene detection works
- Fix some CLI help text
- Bump rav1e dependency to 0.5-beta.2, which brings a new, improved scenechange algorithm. Medium is equivalent to the old slow level, but with improvements. The fast level also has improvements. The new slow level is a new algorithm with a higher accuracy than the previous two algorithms.
- The
--fast-mode
CLI argument is removed in favor of a--speed
or-s
argument, which takes a 0, 1, or 2 (for slow, medium, or fast). The default is 0 for slow.
- Bump rav1e dependency to 0.5. This should bring significant performance improvements, but may cause breaking changes.
- Bump rav1e dependency to 0.4
- Expose
new_detector
anddetect_scene_changes
since these may be useful in some situations to use directly
- Fix compilation on non-x86 targets
- Bump various dependencies
- Improve performance and memory usage
- [Breaking, New Feature]
detect_scene_changes
returns aDetectionOptions
struct, which includes the list of scenecut frames, and the total count of frames in the video. The CLI output will reflect this as well. - [Breaking] Replace the default algorithm with an 8x8-block cost-based algorithm. This is more accurate in many cases.
- [Breaking] As a result of the above change, now requires nasm for compilation. No action is needed if you use a prebuilt binary.
- [Breaking] Replace the
use_chroma
option with afast_analysis
option. The new name is more accurate, as the updated algorithm will always analyze only the luma plane. - [Breaking] Move the
progress_callback
parameter fromDetectionOptions
todetect_scene_changes
, since it only applies to that interface. - [New Feature] Expose the
SceneChangeDetector
struct, which allows going frame-by-frame to analyze a clip. Needed for some use cases.detect_scene_changes
is the simpler, preferred interface. - The library for inputting frame data has been replaced with one that matches rav1e.
- Simplify/optimize some internal code.
- [Breaking, New Feature] Add the ability to pass a
progress_callback
function to theDetectionOptions
.
- [Breaking] Update
y4m
dependency to 0.5
- Initial release