Jonathan Thomas
7e29fc0935
Improving audio directionality, with new function: SetAudioDirection(), so we can safely flip audio buffer direction when needed (i.e. time curves, reversed time). Also adding a new SetDirectionHint function to FrameMapper class - so our Clip class can inform the FrameMapper of its direction at any given moment. Also, clear resampler when changing directions inside a Time curve (since the audio buffer will be flipped - the resampler internal cache must be cleared).
2025-10-11 16:29:11 -05:00
Jonathan Thomas
9a262882de
A few small refactors of clip unit tests
2025-09-30 23:09:32 -05:00
Jonathan Thomas
0c15c1692e
Adding new reversed time curve unit test, to verify 230,000 samples are actually reversed over the length of the clip without skipping or missing a single one.
2025-09-26 18:34:33 -05:00
Jonathan Thomas
c165eca5d8
Improving AudioWaveformer to be able to correctly generate waveforms for time-curved clips that have a modified duration/video_length (i.e. repeated clips, slowled down clips, etc...). Adding a new ReaderBase.h VideoLength() that can be overridden in Clip.cpp when time curves are involved.
2025-09-22 12:28:12 -05:00
Jonathan Thomas
3723fbd99f
Fixing regression on Mac and Windows builds for Clip blend modes (color tolerances)
2025-09-12 23:00:22 -05:00
Jonathan Thomas
021c6ecc07
Adding unit tests to validate FFmpegReader, Clip, and Timeline frame accuracy of GIF files, plus GIF with time curves.
2025-09-12 22:57:26 -05:00
Jonathan Thomas
fa4f44d108
Fixing small build error on benchmark includes
2025-09-12 21:19:16 -05:00
Jonathan Thomas
a66727a687
Expanding Clip unit tests to include all composite blend modes available to libopenshot.
2025-09-12 18:06:26 -05:00
Jonathan Thomas
523ef17aa4
Adding composite/blend modes to libopenshot:
...
-Normal
-Darken
-Multiply
-Color Burn
-Lighten
-Screen
-Color Dodge
-Add
-Overlay
-Soft Light
-Hard Light
-Difference
-Exclusion
2025-09-12 17:47:41 -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
Jonathan Thomas
a326f541a1
Fix bug with Wave effect that can cause colored bands to appear in certain cases, and added new wave effect unit test
2025-09-12 15:07:51 -05:00
Jonathan Thomas
f2a5bfb581
Fixed AnalogTape tests and an unused Clip test line
2025-09-12 15:04:14 -05:00
Jonathan Thomas
d77f3e5338
Improving performance on Clip class:
...
- Replacing alpha with QPainter SetOpactity (much faster)
- Fixing get_file_extension to not crash with filepaths that do no contain a "."
- Removing render hints from apply_background (since no transform or text rendering), making compositing (faster in certain cases)
- Optionally adding SmoothPixmapTransform based on a valid transform (faster in certain cases)
- Skip Opacity for fully opaque clips
- New Clip unit tests to validate new functionality
2025-09-12 14:54:46 -05:00
Jonathan Thomas
0570ad084b
Large timeline clean-up, speed-up, and fix concurrency bugs:
...
- make Add/Remove Effect methods thread safe
- Fix RemoveClip memory leak
- Improve performance of sorting clips by position and layer, cache some common accessors, and speed up "clip intersection" logic
- Don't resize audio container in loop - do it once
- Large refactor of looping through clips and finding top clip
- Protect ClearAllCache from empty Readers, prevent crash
- Expanded unit tests to include RemoveEffect, and test many of the changes in the commit.
2025-09-11 23:27:41 -05:00
Jonathan Thomas
1533b6ab1f
Fixing SphericalEffect.cpp tests
2025-09-11 22:08:38 -05:00
Jonathan Thomas
9ca7e07b12
Adding more SphericalProjection unit tests - still a WIP
2025-09-11 20:31:24 -05:00
Jonathan Thomas
79846eacf8
Adding new Analog Tap effect: Vintage home video wobble, bleed, and grain.
2025-09-10 22:44:30 -05:00
Jonathan Thomas
f98da72050
Improve spherical projection effect to have better quality and separate input / output FOVs for fisheye processing.
2025-09-08 18:02:36 -05:00
Jonathan Thomas
515c4ff509
Improving Tracker effect to better track occluded objects, follow objects offscreen and back onscreen without getting lost, and improved unit tests.
2025-06-15 16:01:17 -05:00
Jonathan Thomas
099fe59dcd
Including missing sstream include on Profile tests
2025-06-06 17:46:22 -05:00
Jonathan Thomas
57a0bae9ac
Refactor of Settings to no longer duplicate them in the *.h and Instance() method. Also changing FF_THREADS and OMP_THREADS to use # of processors on device.
2025-06-06 15:26:40 -05:00
Jonathan Thomas
364fb37565
Unit tests for new VideoCacheThread, to test all helper methods and ensure our general logic is correct (caching forward and backwards)
2025-06-03 22:24:34 -05:00
Jonathan Thomas
d26ef4dcbb
Merge branch 'develop' into lens-flare
2025-05-28 20:34:51 -05:00
Jonathan Thomas
3db2fe14fb
Adding unit tests for Lens Flare effect, and adding effect to Python SWIG bindings
2025-05-28 17:40:47 -05:00
Jonathan Thomas
789944f576
Adding unit tests for Color Map effect
2025-05-25 18:22:41 -05:00