- Adds a new DenoiseImage video effect for reducing luma grain and color speckles with adaptive spatial filtering, conservative temporal blending, motion protection, and brightness response controls.
- Added to openshot-benchmark
- New unit tests
-Generates a full-frame color layer from low/high colors, shaped by audio energy and a response curve, for beat-synced compositing.
- Really useful effect for generating, shaping, and outputting a flashing white or black image (to be composited into another clip)
- Replace raw milliseconds output with FPS (frames / elapsed_seconds) as the
primary metric, reported in a markdown table with a sqrt-scaled bar chart
- Run each trial 3 times and report the median, discarding the cold-cache first
run as a natural outlier for stable, repeatable results across invocations
- Seek to frame 241 (10s into the 24fps source) before timing begins, including
seek cost in the measurement — mirrors real OpenShot scrubbing behavior
- Use 120 frames per trial (up from mixed 30/60) for more stable FPS readings
- Timeline tests now render at 1280x720 @ 29.97fps (was 1920x1080 @ 24fps),
matching source resolution so all tests are roughly comparable
- FrameMapper reduced to a single 30000/1001 rate (was 5 rates sharing a cache)
- Add Effect_ColorGrade, Effect_FilmGrain, Effect_Shadow, Effect_Glow trials
- Remove combined AudioVisualization aggregate trials (redundant with per-mode rows)
- Remove Effect_AudioVisualization_VUMeter and _Bars (too fast to be informative)
- Guard all effect includes and trials with __has_include so the benchmark
compiles and runs against older libopenshot builds, silently skipping effects
that did not exist yet
- Suppress FFmpeg/codec log output via av_log_set_level(AV_LOG_QUIET)
- Add TTY-only spinner with per-trial run counter (e.g. [2/3]) during execution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Defaults exposed via DefaultOMPThreads() and DefaultFFThreads().
- User overrides are clamped to 2 .. 3x CPU count.
- openshot-benchmark now supports --omp-threads and --ff-threads.
- Tests cover the new settings and benchmark arg behavior.
- BASIC = hard cutoff; BASIC_SOFT = hard cutoff + halo feather.
- Optimized loops/math + OpenMP, and added benchmark + tests for both and JSON/default behavior.