Commit Graph

13 Commits

Author SHA1 Message Date
Jonathan Thomas 51ee44ab33 Adding new Denoise effect
- 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
2026-05-05 21:19:26 -05:00
Jonathan Thomas cababff695 Merge remote-tracking branch 'origin/develop' into beat-sync
# Conflicts:
#	tests/Benchmark.cpp
2026-05-03 16:39:38 -05:00
Jonathan Thomas fc897ec522 Add Beat Sync audio-reactive flash effect
-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)
2026-05-02 23:20:08 -05:00
Jonathan Thomas 561a233327 Adding more classes/effects to openshot-benchmark, and still using our new FPS metric, processing 120 frames at 720p/24fps source.
- Effect_Blur (Gaussian: radius=4, sigma=3.0, 3 iterations)
- Effect_Sharpen (amount=1.0, radius=3.0, threshold=0.1)
- Effect_Hue (shift=0.25)
- Effect_Negate
- Effect_Pixelate (5% pixelization, full frame)
- Effect_Wave (wavelength=0.5, amplitude=3.0, multiplier=0.5, speed_y=2.0)
- Effect_Caption (WEBVTT captions, skipped when QT_QPA_PLATFORM=offscreen)
- Effect_Displace (front3.png map, strength=0.5, H/V=10%)
- FrameScope (waveform_columns=256, vectorscope_size=128, individual getters matching openshot-qt playback path)
2026-05-02 14:13:47 -05:00
Jonathan Thomas cb7c8c1f93 Merge branch 'develop' into benchmark-fps-metric
# Conflicts:
#	tests/Benchmark.cpp
2026-05-01 23:39:32 -05:00
Jonathan Thomas 515fe7b196 Fixing 5 Codacy nitpicks in the audio-visualization branch 2026-05-01 23:27:31 -05:00
Jonathan Thomas b12379ce8a Redesign benchmark: FPS metric, stable median-of-3, mid-video seek, new effects
- 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>
2026-05-01 16:31:54 -05:00
Jonathan Thomas 9ef70177f2 Improving performance of audio visualization modes. Redesigning waveform and filled waveform to be more CPU efficient. Adding audio visualizations to our benchmark tool. 2026-04-30 16:05:28 -05:00
Jonathan Thomas bca37e047a - Default OMP/FF threads now come from the machine CPU count, with a minimum of 2.
- 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.
2026-03-28 23:23:33 -05:00
Jonathan Thomas 967b58c0d3 - Added BASIC_SOFT and made it the default for new ChromaKey effects.
- BASIC = hard cutoff; BASIC_SOFT = hard cutoff + halo feather.
- Optimized loops/math + OpenMP, and added benchmark + tests for both and JSON/default behavior.
2026-03-08 00:31:21 -06:00
Jonathan Thomas 438c74f340 Adding new args to openshot-benchmark, so each test can be run separately - useful for quick optimization validation. 2026-03-01 21:25:27 -06:00
Jonathan Thomas fa4f44d108 Fixing small build error on benchmark includes 2025-09-12 21:19:16 -05:00
Jonathan Thomas b94dcac3b4 Adding Benchmark executable to assist with performance testing and comparisons with different versions of OpenShot.
Initial results:
FFmpegWriter,7800
FrameMapper,3508
Clip,4958
Timeline,30817
Timeline (with transforms),53951
Effect_Mask,9283
Effect_Brightness,12486
Effect_Crop,5153
Effect_Saturation,15545
Overall,147136
2025-09-12 17:27:43 -05:00