Commit Graph

3015 Commits

Author SHA1 Message Date
Jonathan Thomas
32f291c4c3 Fixing unit test building on Mac runner 2025-06-04 23:46:09 -05:00
Jonathan Thomas
81a04a12f8 Add libopenshot unit tests back into Mac builder GitLab CI script 2025-06-04 23:03:23 -05:00
Jonathan Thomas
60fbb7fe5e Fix incorrect _MSC_VER and replace with _WIN32 2025-06-04 22:42:34 -05:00
Jonathan Thomas
38afcea242 Use aligned memory free for QImage / frame buffer (fix crash on Win32 running unit tests for FFmpegReader) 2025-06-04 21:29:31 -05:00
Jonathan Thomas
b2333ab389 Refactoring aligned malloc to work on Mac, Windows, and Linux (inside FFmpegUtilities.h) 2025-06-04 20:45:19 -05:00
Jonathan Thomas
c487aa4389 Fixing the alignment of our FFmpegReader video buffers to be 32 / AVX2. This increases performance by a factor of 3X. 2025-06-04 18:37:46 -05:00
Jonathan Thomas
6e73a23259 Changing example program to time decoding of test video, forwards and backwards, with time print-outs. 2025-06-04 17:19:01 -05:00
Jonathan Thomas
c95fd837b6 Small improvement to caching sws scale context and reusing AVFrame objects. About 1.5% less CPU calls, and more even memory allocations (less spikey). 2025-06-04 17:18:23 -05:00
Jonathan Thomas
9a4dcf252a Merge pull request #1013 from OpenShot/caching-improvements
Caching Improvements (Forward & Backwards, Play & Pause)
2025-06-03 23:20:10 -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
6c39b0f8e5 Another large refactor of our primary cache thread, to split out many functions which we can test in our unit tests. 2025-06-03 19:36:05 -05:00
Jonathan Thomas
fd91892fea More tweaks to keep the cache window centered on the playhead, so different speeds (- and +) still result in moving cache window. 2025-06-03 17:49:56 -05:00
Jonathan Thomas
ec81c1d1cd Simplification and another small refactor of Run code (to make it more maintainable) 2025-06-03 16:46:04 -05:00
Jonathan Thomas
6d5e55175b Huge refactor of VideoCacheThread, to provide better caching, fixing many edge cases that cause our cache to become unsynced with playback. This is still a work-in-progress though.. 2025-06-03 16:23:17 -05:00
Jonathan Thomas
06ddfc1320 Add virtual Touch() function to CacheBase, and rename MoveToFront in CacheMemory.cpp and CacheDisk.cpp to Touch. 2025-06-03 09:24:16 -05:00
Jonathan Thomas
28aacfd4ef Merge pull request #1012 from OpenShot/fix-deinterlace-crash
Fix Deinterlace effect crash (plus CPU improvements for Mask effect)
2025-06-02 17:33:16 -05:00
Jonathan Thomas
7f130cb65c Improving performance of Mask effect (transitions) using OMP + reducing floating point operations per pixel and caching variables 2025-06-02 16:09:30 -05:00
Jonathan Thomas
3e2dc8a3f8 Fix crash on deinterlace effect, and add in omp performance improvements. Also fixed issue with isOdd being accidentally read-only 2025-06-02 15:50:53 -05:00
Jonathan Thomas
3c3572a128 Merge pull request #1011 from OpenShot/godot-bindings
Experimental: Godot 4.4 Bindings
2025-06-01 21:01:47 -05:00
Jonathan Thomas
26e6ef404c Adding reuse copyright and licensing info 2025-05-31 17:56:32 -05:00
Jonathan Thomas
05c8a5489e Reverting FFmpegReader depreciation changes around side data (due to Mac build errors) 2025-05-31 16:31:18 -05:00
Jonathan Thomas
d62be06bab Including sub-module for godot-cpp, required for the GDExtension (disabled by default) 2025-05-31 16:03:05 -05:00
Jonathan Thomas
efedc09cd9 Initial GDExtension demo code, which can initialize a Timeline and FFmpegReader instance, print Profiles, and send an Image into Godot 4.4/4.5. This is highly experimental, and disabled by default. Requires ENABLE_GODOT=1 to build, and manually copying the gdextension and bindings/godot/*.so file into your Godot project bin. NOTE: This also required a locally compiled version of Godot and Godot-cpp. 2025-05-31 16:00:10 -05:00
Jonathan Thomas
ff1b7b6ced Removing sstream from Frame and ClipBase (unused) 2025-05-30 18:08:52 -05:00
Jonathan Thomas
b2b28e5cc6 Removing sstream from Profile code, and pretty large refactor to support this effort. All unit tests now passing. 2025-05-30 17:23:48 -05:00