Commit Graph
42 Commits
Author SHA1 Message Date
itsmattkc 29908f2d8b math: revised timestamp calculations around epsilon 2022-05-29 11:13:05 -07:00
itsmattkc bbf6f8f9f9 export: fixed stills 2022-05-29 10:15:32 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc abb84aa2ca rational: assert when limits are used for calculations
These will necessarily result in overflows or underflows so I've attempted to weed this behavior out while adding asserts in case there are still usages I haven't found
2022-04-25 14:26:07 -07:00
itsmattkc 20cf77d8f2 cache: show background caching in task manager
Allows users to cancel and monitor total progress.
2021-10-09 19:33:17 -07:00
itsmattkc 4125f41d1f cache: fixed on-demand cache 2021-10-09 19:13:11 -07:00
itsmattkc 677277c16d renderer: improved code flow 2021-09-21 19:10:03 -07:00
itsmattkc 6ae368df85 footageviewer: fix infinite loop
Also adds warning to help prevent this from happening again
2021-09-01 11:31:20 -07:00
itsmattkc 930d8309d3 timeline: implemented nudging #1692 2021-07-30 19:17:26 -07:00
itsmattkc c374a03e9d render: further simplified job times
Outside of silly mistakes, this should be significantly faster and more stable.
2021-07-12 15:14:37 -07:00
itsmattkc dc34f80386 timerangelistframeiterator: initialize values even with default constructor 2021-07-12 11:56:00 -07:00
itsmattkc 8a58ee2bdb renderer: use iterator rather than creating vectors
Creating vectors from the FrameHashCache was one of the slowest functions in the program, this should be significantly faster.
2021-07-11 16:47:12 -07:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc fe4e45e386 fixed timerangelist removing bug 2020-11-16 01:33:53 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc 2d8c605cc9 timerangelist: fixed bug where ranges might sometimes overlap 2020-10-05 16:50:38 +11:00
itsmattkc 5ce508a1da timerange: fixed issue that broke removing timeranges from a timerangelist 2020-06-05 14:43:18 +10:00
itsmattkc 8051a42fcc timerange: added some helper functions for comparing timeranges and rationals 2020-06-05 04:30:59 +10:00
itsmattkc 5eeef76b62 waveform: shift track waveform alongside cache 2020-06-04 23:32:50 +10:00
itsmattkc 9ff9817b95 cache: use render job times to synchronize cache
Ensure old inaccurate jobs are never prioritized over current jobs.
2020-06-04 16:48:23 +10:00
itsmattkc 6acfe995fa timerange: use doubles instead of rationals when printing debug info
Doubles are infinitely more readable and have been the vast majority of
debug printing cases thus far.
2020-06-01 17:45:21 +10:00
itsmattkc a2d68f6d9f timerange: added functions to + and - rationals from timeranges 2020-05-21 02:17:47 +10:00
itsmattkc 4a8a44a8b1 timerange: added debug output functions for the TimeRange and TimeRangeList classes 2020-04-06 17:08:13 +10:00
itsmattkc 1aa87cbda6 various: encapsulate all code in the olive namespace to avoid name collisions
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc 56178648bd timelinepoints: implemented saving/loading into project files 2020-04-05 19:21:17 +10:00
itsmattkc b713ab47eb keyframes: only update active frames even from curve and param editor
When adjusting a slider, keyframe time, or curve value, it is undesirable to
re-cache the entire affected area while the user is still dragging UI objects.
Since the video is unlikely to be playing, the priority must go to the
currently active frame so the user gets visual feedback on the rendered image
as soon as possible. This was implemented in some areas, but this commit should
have that functionality in all areas.
2020-01-25 17:51:34 +11:00
itsmattkc e6b45c75c3 fixed bug where scrubbed frames would be cached but not committed to the hashmap 2020-01-17 18:13:49 +11:00
itsmattkc d32306f88b only disk cache around the playhead 2020-01-10 20:35:48 +11:00
itsmattkc 7f796bd99f revised video renderer's invalidate cache to use ranges rather than discrete
frames

Previously, when the video renderer received a dirty cache signal, it would
proceed to extract all frames from the range and queue them. However, this could
be extremely slow for long ranges since it had to iterate through the entire
range and calculate the individual frames it contained. Now, we use the same
range combining system as audio and automatically calculate the next frame
within the range only when necessary. Essentially the same work, but split up
over time and done only when needed leading to no discernible UI pause when
invalidating cache.
2020-01-03 15:50:43 +11:00
itsmattkc db146b376a implemented core UI caching feedback functionality
Not a perfect implementation yet, but this shows UI feedback on what frames are
cached and which ones aren't.
2020-01-03 05:38:20 +11:00
itsmattkc c6d5fbae8c moved timerange functions to timerange class 2019-11-17 12:29:09 +09:00
itsmattkc 0081511f18 Merge branch 'master' of https://github.com/olive-editor/olive 2019-11-15 14:00:06 +09:00
itsmattkc 16f80386e8 added qhash functions for timerange and rational
So these keys can be used in QHash containers, they need functions for how to
create those hashes.
2019-11-15 13:55:05 +09:00
lightyear15 96074d3f3a timerange quick refactor
std::swap can saves some lines of code,
and less code means less to maintain
2019-11-08 22:02:55 +01:00
itsmattkc fea9fb24aa Merge branch 'master' of https://github.com/olive-editor/olive 2019-11-06 09:16:16 +11:00
itsmattkc 663ae56ac4 more coherent render threading for now
Once again, conceptually this system should work, however it does not seem to
be the most efficient and it wouldn't surprise me if the multithreading was
eventually upgraded to an even more coherent system one day. However for
"core principles" this should be fairly decent.
2019-11-03 04:05:43 +11:00
itsmattkc 16ac2fc0e1 sweeping node graph changes for new rendering pipeline
The new rendering pipeline strives to simplify the nodes themselves as much
as possible and move much of the logic to an external rendering engine. This
change removes all of the responsibilities that no longer belong to the
nodes themselves and will soon be folded into the renderer.
2019-11-02 01:39:37 +11:00
lightyear15 2453b1d10c Code Cleanup: common: removing default constructors
As C++11 is the adopted standard, trivial constructors are not needed,
compiler can generate it for us.
2019-10-26 21:39:34 +02:00
itsmattkc 7dec79ceaa various changes to rendering flow and structure 2019-10-23 00:42:52 +11:00