Jonathan Thomas
a5f35fb42a
Refactoring the VideoCacheThread to check every frame before requesting it. Adding a new method: Contains() to our cache objects, to facilitate this. Removing cache clearning experimental code from Timeline (causing playback issues). Refactoring PrivatePlayer playback timing code, to calculate an average # of frame difference between audio and video threads, and slowly adjust back towards zero when needed.
2022-01-14 15:16:04 -06:00
Jonathan Thomas
f3e7208df6
Adding some additional logging
2021-12-06 15:47:32 -06:00
Jonathan Thomas
09bcf2ab15
Fix sleep time calculation to change when the project profile is changed (big bug), and add some additional logging/debugging statements
2021-12-03 15:21:11 -06:00
Jonathan Thomas
4a52941708
Experimental logging to detect delay on Windows playback
2021-12-03 00:43:13 -06:00
FeRD (Frank Dana)
59108504e3
Code changes for compatibility with JUCE 6.x
...
- Replace all juce::CriticalSection with std::recursive_mutex
- Replace all juce::AudioSampleBuffer with juce::AudioBuffer<float>
- Eliminate implicit reliance on 'using namespace juce;'
- Replace OpenShotAudio.h includes with targeted juce modules
2021-11-09 06:22:25 -05:00
FeRD (Frank Dana)
fe58e8028d
Move some headers around
2021-11-01 11:04:31 -04:00
Frank Dana
59138ea3e4
Adopt license management via Reuse project/tool ( #711 )
...
* reuse-managed license/copyright headers
reuse is a tool for compliance with the REUSE recommendations. See
<https://reuse.software/ > for more information, and
<https://reuse.readthedocs.io/ > for the online documentation.
* Set jsoncpp license
* Add MIT license for Decklink sources
* Explicitly license examples/
- Add headers to source files
- Change blanket licensing in .reuse/dep5 to only cover binary media
- Import CC-BY-3.0 license and assign to sintel_trailer
2021-10-16 01:26:26 -04:00
Jonathan Thomas
2e8c74e8aa
Prevent crash when smallest frame detected in memory object is NULL
2021-10-07 13:34:00 -05:00
Jonathan Thomas
0c4e1bcce4
Improving performance after working with google-prof, to profile CPU. Calling OMP_MP_NUM_PROCESSORS less often, since it's quite expensive according to profiling. Adjusting Timeline final_cache to match the video caching thread max_frames, so one doesn't clobber the other. Also, fixing an issue with openshot-player, where a video file with no audio skips horribly.
2021-02-04 17:28:07 -06:00
Jonathan Thomas
47afa205c7
Merge pull request #585 from OpenShot/opencv
...
3 New OpenCV Effects (Tracker, Stabilization, and Object Detection)
2021-01-28 17:28:15 -06:00
FeRD (Frank Dana)
2f3615f706
Move Exceptions.h includes to .cpp files
2021-01-26 10:52:04 -05:00
Jonathan Thomas
df154c3844
Fixing color format for opencv conversion
2020-10-30 18:23:45 -05:00
Jonathan Thomas
172348417c
Improvement to video caching thread, to recover from the separation of cache vs display frame #. Also found a mutex that was needed, to prevent crashing when the video thread calls timeline::GetFrame at certain times... colliding with another thread (and independent of OpenMP).
2020-10-23 17:52:20 -05:00
FeRD (Frank Dana)
aa40ea29e0
Update include paths in all source/header files
2020-10-18 07:43:37 -04:00
Frank Dana
e500cae9f5
Replace sleep()/usleep() with std::chrono calls ( #473 )
2020-09-02 02:07:54 -04:00
FeRD (Frank Dana)
3321042672
Raise preview cache to CPUs*8 frames, max 64
2020-01-14 00:47:02 -05:00
FeRD (Frank Dana)
43efabf102
Qt/Video*Thread: ZMQ argument stragglers
2019-10-07 13:34:02 -04:00
FeRD (Frank Dana)
f170fdd009
Update copyright range to current year
2019-06-11 06:48:32 -04:00
FeRD (Frank Dana)
0327c2ab5c
Remove license block from documentation comment
2019-06-09 08:31:04 -04:00
Jonathan Thomas
4ed7847fa9
Improving cache performance by preventing the cache from getting behind the currently displaying frame #
2018-12-14 14:38:33 -06:00
Jonathan Thomas
851ad86634
Changing some sleep() calls to usleep(), for more accuracy. This is a bit experimental, and hopefully will work on all OSes.
2018-04-14 16:25:58 -05:00
Jonathan Thomas
c95db460d6
Big update! Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. Also removing variable bitrate support temporarily, since it causes more problems than it solves.
2017-09-28 16:03:01 -05:00
Jonathan Thomas
85ac4bf6d2
Updating references to frame number / position to long int, there were still quite a few old "int" declarations, which limits the length of frame number. Also, updated precision of KeyFrames to use double (instead of float) for higher precision, which fixed lots of issues with very long videos (since our FrameMapper used a KeyFrame object to create a map to new frames)
2017-01-24 18:39:17 -06:00
Jonathan Thomas
c53c9364f3
Added new CacheDisk class, which caches frames to the hard drive, dramatically speeding up preview speeds, at the expense of IO operations. New unittests for caching framework. Fixed a few bugs with Frame constructor, which was causing invalid # width & height. Integrated JSON into the cache framework, to quickly share the state of the cache (including ranges of cached frame numbers). Fixed a bug where some Timeline frames could have no audio samples.
2016-09-07 00:40:01 -05:00
Jonathan Thomas
4808be25ff
Added 4 new clip keyframes (channel mapping, channel filter, has_video, and has_audio). These are a bit different though, as they are evaluated as boolean (-1 = ignored, 0 = disabled, 1 = enabled). Also fixed some issues with video playback (where it gets stuck in fast forward), and fixed some race conditions when opening FFmpegReader. Also added more debug output.
2016-04-24 15:37:47 -05:00