3122 Commits

Author SHA1 Message Date
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
a6ca7d9a2f Adding back Setting::VIDEO_CACHE_MAX_FRAMES, to limit the video cache thread to a hard #. Also, minor refactor to reduce duplication of capacity. 2025-06-06 15:25:46 -05:00
Jonathan Thomas
a4b2af4eb8 Adding FFmpegWriter into openshot-example executable to test with valgrind heapgrind. 2025-06-05 19:38:53 -05:00
Jonathan Thomas
5e4bc364cb Remove per-thread scalers; use single persistent frames and SwsContext for video scaling. Total improvement of 8-9% when testing h.264 encoding @ 720p. 2025-06-05 19:38:15 -05:00
Jonathan Thomas
54b33ed609 Reverting experimental libopenshot Mac build changes related to "image not found" errors when running unit tests. 2025-06-05 00:23:30 -05:00
Jonathan Thomas
2003ae1d92 Experiment for Mac unit tests 2025-06-05 00:10:42 -05:00
Jonathan Thomas
15936baf46 Experiment for Mac unit tests 2025-06-05 00:05:42 -05:00
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