5 Commits

Author SHA1 Message Date
Jonathan Thomas ce560f105e Cap Mask contrast factor at maximum contrast
-Raise the Mask contrast denominator floor from 0.00001 to 0.5, capping the contrast factor at 40. This prevents contrast values near 20 from turning the 8-bit gray lookup into a one-value step function, where tiny mask image differences can create hard transparent edge artifacts during gradient wipes.
-Add a regression test covering the maximum contrast transition band.
2026-05-03 16:36:12 -05:00
Jonathan Thomas 3502813f2a - Added Fade Audio to Mask transitions.
- Timeline now fades audio based on transition placement.
- Added tests and enabled it for auto overlap transitions in openshot-qt.
2026-03-12 23:01:18 -05:00
Jonathan Thomas 579d38e20b - Unified mask trim on canonical start / end.
- Kept legacy mask_start / mask_end JSON loading.
- Fixed global mask start being applied twice.
- Defaulted mask timing to Source FPS.
- Made mask readers honor split-file reader start / end.
- Added tests for all of the above.
2026-03-09 14:03:54 -05:00
Jonathan Thomas fbd07d78d3 Integrating Mask effect with invert mask property and unit tests. This allows the Mask effect to invert the mask easily. 2026-02-23 21:09:27 -06:00
Jonathan Thomas 1ad401c66d - Added a new common mask_reader feature at EffectBase, so all video effects can be mask-limited automatically (audio effects ignore it).
- Added optional Mask Mode overrides for Blur, Saturation, Brightness, Hue, Pixelate, and Sharpen (Limit to Mask, Vary Strength).
- Kept unified mask property naming (mask_reader) with legacy JSON compatibility where needed.
- Added/updated unit tests for base mask behavior, per-effect mode behavior, and JSON round-trips.
- Fixed profile tests to write generated files into the build/test directory instead of the source examples/ folder.
2026-02-23 00:00:33 -06:00