773 Commits

Author SHA1 Message Date
Settoshi Tonami
6d272815f2 new logo in README.md 2025-12-04 17:54:02 +01:00
Jaromil
f081aa64d4 Minor fixes following up review
use CLAMP in colordistance

keep MY_MAX_RAND in rgbnoise

code cleanup from old experiments

leaner free section in water

Co-authored-by: Dan Dennedy <dan@dennedy.org>
v2.5.1
2025-12-02 17:23:47 +01:00
Jaromil
542c4bc0a9 fix: g0r_state fix leftover 2025-12-02 17:23:47 +01:00
Jaromil
ce386ca806 fix: safety and readability of water filter
long due update, not yet fully tested
2025-12-02 17:23:47 +01:00
Jaromil
7a044cba04 fix: WITHOUT_FACERECOGNITION build flag
to avoid double loading of protobuf, implicitly loaded by opencv,
we need to deactivate the build of two face detection plugins that
use opencv (which loads protobuf implicitly). This fixes bug #185
2025-12-02 17:23:47 +01:00
Jaromil
27af2abfb4 fix: add more checks to mixers and cairo dep
A bunch of safety checks on mixers like overlay, blend and cairoblend
that may mitigate the #187 undeterministic behavior and segfaults.
Could not reproduce it yet.
2025-12-02 17:23:47 +01:00
Jaromil
3a720e4270 fix: thread safety issues
- RGBNoise: move global vars (gaussian_lookup, TABLE_INITED, next_gaussian_index, last_in_range)
- Glitch0r: move global g0r_state
- Cartoon: fix PIXELAT macro to refer to instance

address #188 (seems not all filters on that list are unsafe)
2025-12-02 17:23:47 +01:00
Jaromil
b0a990ed18 fix: cmake lower version policy
With CMake 4, the lowest supported version is 3.12. Anything older will fail to configure.

fix #228
2025-12-02 17:23:47 +01:00
Jaromil
33aaa39ac7 fix: tint0r portability with scalar implementation
- Added portable fallback implementation for tint0r filter when SSE4.1 is not available
- Implemented proper architecture detection using #define directives
- Added support for future AVX2 and NEON optimizations (placeholders)
- Fixed parameter name issue in f0r_get_plugin_info function
- Proper handling of pixel data in BGRA format
- Correct luminance calculation for all code paths
2025-12-02 17:23:47 +01:00
Jaromil
69d0711057 fix: various safety fixes easy to apply
addressed some defective filters known to cause problems

- Fixed division by zero in IIRblur filter
- Added bounds checking in distort0r filter
- Fixed negative index issues in rgbsplit0r filter
- Added division by zero protection in rgbsplit0r filter
- Improved colordistance filter by removing debug printf and adding clamping
- Fixed width/height initialization in sobel filter
- Add bounds checking to sobel filter
- Fixed potential division by zero in posterize filter
2025-12-02 17:23:47 +01:00
Dan Dennedy
40a50bec63 Fix bluescreen0r overwrites input alpha
Fixes https://github.com/mltframework/shotcut/issues/1745
and
https://forum.shotcut.org/t/chroma-key-turns-anything-not-behind-it-
black/50087
2025-11-07 19:50:39 +01:00
Jason E. Hale
697fc9b2a5 Install heatmap0r filter
Format similarly to other plugins.
2025-11-04 07:15:12 +01:00
luzpaz
91526e95fb README: Add packaging section and repology badge
Added packaging section and repology status badge to README to facilitate an efficient way to survey the status of frei0r across the package ecosystem.
2025-11-04 07:13:46 +01:00
Jaromil
e2ab161052 fix some typos (#224)
Found via codespell -L currenty,distint,fo,parm,shotcut,te,teh
2025-11-04 07:12:08 +01:00
luzpaz
b061db50aa fix some typos
Found via codespell -L currenty,distint,fo,parm,shotcut,te,teh
2025-10-24 07:11:45 -04:00
Jaromil
53e635ab3b Implement Otsu's algorithm in autothresh0ld (#221)
[Otsu's algorithm](https://en.wikipedia.org/wiki/Otsu%27s_method) finds
the best threshold (**t***) to separate image foreground from
background; pixels below **t*** are part of background, and pixels above
are part of foreground. However, unlike hard thresholding as done in
Otsu's algorithm, a soft thresholding is done here instead, through
treating **t*** as the _base_ of the sigmoidal transfer (function). It
could be seen as a variant of **sigmoidalfilter**, where the _base_ is
algorithmically determined.
2025-10-21 17:58:25 +02:00
Cynthia
a2b274ccce Implement Otsu's algorithm in autothresh0ld 2025-10-10 18:50:08 +05:30
Jaromil
0dbbac5258 Heatmap0r for a hot frei0r experience (#218)
Natural extension of the `tint0r` filter. The filter operates only between two colours, while the `heatmap0r` filter works between three colours: two extremes and one adjustable mid-point, and smoothly interpolates between them using quadratic interpolation. It can also be used for analysing the gamut of luminosity.
v2.5.0
2025-10-07 16:15:56 +02:00
Jaromil
2183bc1cf6 Merge branch 'master' into features 2025-10-07 08:11:45 +02:00
Jaromil
65fa7ea8ea Optimize tint0r, and sigmoidaltransfer filter (#217)
target SSE4.1 with opportunistic assembler optimizations via macros.
2025-10-07 08:06:05 +02:00
Cynthia
d6a0ea5268 Merge branch 'master' into master 2025-10-07 08:45:23 +05:30
esmane
69d23fc0a2 Improve progressive scan mode 2025-10-06 23:17:09 +02:00
esmane
def52c449f Improve (and simplify) NTSC filter 2025-10-06 23:17:09 +02:00
Jaromil
772d2e5edb fix: strtok_r is _s on windows v2.4.1 2025-10-06 22:42:32 +02:00
Jaromil
f11132bb4b fix: correct use of snprintf and strtok 2025-10-06 22:32:36 +02:00
Cynthia
455aa7d1f5 Merge in upstream changes & add self to AUTHORS 2025-09-19 11:21:21 +05:30
Cynthia
4a4503b1e8 Fix typos & rename ids in heatmap0r 2025-09-19 10:53:44 +05:30
Cynthia
8482bc9680 change heatmap0r colorscheme 2025-09-17 11:40:29 +02:00
Cynthia
cf5cb9654d rename p0st0r to heatmap0r 2025-09-17 11:40:29 +02:00
Cynthia
91f4cb3bbc feat: add p0st0r filter 2025-09-17 11:40:29 +02:00
Jaromil
fb4e92925f Merge branch 'master' into master 2025-09-17 11:39:35 +02:00
luzpaz
62dd46650c fix various typos in the codebase
Found via `codespell -L currenty,distint,parm,shotcut`
2025-09-17 11:37:33 +02:00
IOhannes m zmölnig
de67485abb Add Vadim Druzhin to the AUTHORS
author of "sleid0r"
2025-09-17 11:15:38 +02:00
IOhannes m zmölnig
5d8e8f8498 Add Johannes Jeg to the authors
author of "mirr0r"
2025-09-17 11:15:38 +02:00
IOhannes m zmölnig
683e40f147 fix some typos 2025-09-17 11:15:38 +02:00
IOhannes m zmölnig
a12d01602b one author per line 2025-09-17 11:15:38 +02:00
Cynthia
42ee3fee46 change heatmap0r colorscheme 2025-09-12 16:38:23 +05:30
Cynthia
dcd39d95a7 rename p0st0r to heatmap0r 2025-09-12 14:39:29 +05:30
Cynthia
ac46ae351d feat: add p0st0r filter 2025-09-12 14:26:31 +05:30
Cynthia
cd109d4452 Optimize the sigmoidal filter with LUTs, and make curve customizable 2025-09-11 20:31:19 +05:30
Cynthia
542b9a9ddb Optimize tint0r filter using SSE4.1 2025-09-08 22:17:43 +05:30
Jaromil
e7dd4f600b fix: authors filename in release pack v2.4.0 2025-09-03 16:34:34 +02:00
Jaromil
4958ce76b9 fix: brew install cmake already pinned 2025-09-03 11:26:57 +02:00
Jaromil
1d7af87d8e fix: brew update for release build 2025-09-03 11:20:39 +02:00
esmane
f7f933322d feat: Add NTSC/VHS Filter (#212)
* Create CMakeLists.txt

* Add NTSC filter

* Scale output to display

* relax linter about header guards format

---------

Co-authored-by: Jaromil <jaromil@dyne.org>
2025-09-03 10:25:25 +02:00
Dan Dennedy
b47c180376 Add "Pass-through alpha" to pixeliz0r (#206) 2025-04-26 23:37:11 -07:00
Dan Dennedy
3d288d95a7 fix missing POST_BUILD 2025-04-07 14:26:17 +02:00
Dan Dennedy
1f8e21e27f Fix bad add_custom_command() in distclean target
`add_custom_command()` has 2 formats: OUTPUT and TARGET. This is TARGET,
but TARGET does not permit OUTPUT.

see https://cmake.org/cmake/help/v3.31/policy/CMP0175.html
and https://cmake.org/cmake/help/v3.31/command/add_custom_command.html

Also, I converted to now-prefered lowercase (only lowercase works in my
IDE to pull up context-sensitive help for CMake). And I replaced a Make-
oriented COMMAND on `add_custom_target()` to a proper `COMMENT`.
2025-04-07 14:26:17 +02:00
Dan Dennedy
85f6e9dba2 Upgrade to actions/checkout & upload-artifact v4 2025-04-07 14:26:17 +02:00
Dan Dennedy
eb9e96d200 Add CMake max-policy version
This attempts to insulate projects from changes in future versions of
CMake.
2025-04-07 14:26:17 +02:00