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
a07fe18a14
Adding 5 Spherical test images (needed for unit tests)
2025-09-10 21:33:37 -05:00
Jonathan Thomas
a90b4d6c3e
Improving fish eye support for SphericalProjection effect (4 types of fish eyes for input and output). Fixing lots of issues with virtual camera controls (so controls don't flip axis randomly)
2025-09-10 17:11:41 -05:00
Jonathan Thomas
c23c0d14af
Fixing regression in SphericalProjection.cpp effect - causing a unit test to fail
2025-09-09 18:36:36 -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
f68d18419a
Improve GetMinFrame / GetMaxFrame functions for a timeline, to be inclusive on min, and exclusive on max (trying to prevent rounding errors on last frame)
2025-09-08 15:59:29 -05:00
Jonathan Thomas
fbef1bcf04
Protect the video and audio codec name discovery flow, to prevent crash from unknown codecs.
2025-09-07 15:02:26 -05:00
Jonathan Thomas
dd62f5b49e
Protecting clip GetFrame from crash due to null frame, then setting the ->number property of a null frame.
2025-09-05 14:48:35 -05:00
Jonathan Thomas
adff81fefc
Fixing protobuf loading bug, preventing tracker and object detection from loading correctly.
2025-08-12 17:46:56 -05:00
Jonathan Thomas
523fb5acf9
Massive improvement to object detection sort logic, to keep IDs more stable and less jitter / ID jumping between detections.
2025-08-11 23:35:09 -05:00
Jonathan Thomas
981e18de95
Fixing logic to set ObjectDetection JSON (Detector was not updating the box values - due to ID mismatches)
2025-08-11 16:22:54 -05:00
Jonathan Thomas
4613b5239f
Fixing logic to set Tracker JSON (Tracker was not updating the box values - due to ID mismatches)
2025-08-11 15:38:09 -05:00
Jonathan Thomas
e43f87552d
Small refactor to assign Clip and Effect ids in base class
2025-08-11 14:52:24 -05:00
Jonathan Thomas
6cea273b77
Fix timeline cache when updating Clips with ApplyJsonDiff (old and new position)
2025-07-08 15:19:17 -05:00