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
16878e3c25
implemented much of the project loading logic
...
Still not functional, but much of the groundwork is done.
2020-01-13 04:09:06 +11:00
itsmattkc
bb57884cac
added save functions to various classes
...
Each class is responsible for its own saving and loading from the XML data
in order to reduce the complexity of the save code.
2020-01-12 18:36:31 +11:00
itsmattkc
d32306f88b
only disk cache around the playhead
2020-01-10 20:35:48 +11:00
itsmattkc
7df52b7fd5
added disk preferences pane and the ability to set the disk cache location
2020-01-09 15:51:59 +11:00
itsmattkc
7bf2422c44
moved timeline tracktypes into timelinecommon.h
2020-01-06 15:34:12 +11:00
itsmattkc
ef91f81e0f
implemented cursors in the timeline
...
Note: this does not use the cursor SVGs in app/ui/cursors since I was never
really satisfied with them. They're kept for posterity for the time being.
2020-01-03 17:58:07 +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
e41fdbd6e3
implemented autoscrolling derivatives of TimelineViewBase around the playhead
2019-12-31 19:17:40 +11:00
itsmattkc
994d8be961
implemented bezier interpolation into parameters inputs
2019-12-28 23:21:07 +11:00
itsmattkc
855fe5e93f
fully implemented setting keyframes and standard values in the NodeParamView
...
Widget now supports creating keyframe and standard values, supports dragging
from sliders (not creating an undo command for each drag), and everything is
undoable.
2019-12-27 14:51:21 +11:00
itsmattkc
61c60e00d6
various small code cleanups and improvements
...
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc
520b8b46fa
place timecode conversion functions into a Timecode class rather than an olive namespace
...
Code cleanup and improvement.
2019-12-26 17:20:58 +11:00
itsmattkc
d4ee33405b
implemented speed/duration dialog and most of its functionality
...
An earlier commit implementing media in and out parameters was primarily for
this addition. A simple control dialog for the clip's speed presentation
reimplemented from the old codebase.
2019-12-17 03:58:12 +11:00
itsmattkc
72f2d06ab3
fixed timecodes showing negative numbers between tokens
2019-12-14 23:13:37 +11:00
itsmattkc
3bfe333878
replaced QString uses with QStringLiteral
...
Minor code optimization according to Qt documentation.
2019-12-10 00:42:31 +11:00
itsmattkc
4bb874a154
fix sigfpe on timecode function if the timebase isn't valid
2019-12-09 23:43:03 +11:00
itsmattkc
2fe03debec
reimplement string timecode to frame number conversion
2019-12-08 00:10:43 +11:00
itsmattkc
cbf4d5b8c7
removed reference to deleted file in cmake
2019-12-03 13:07:03 +11:00
itsmattkc
6973919481
removed never used (and slow) qlist-related functions
2019-12-02 01:40:12 +11:00
itsmattkc
2889811b7b
improved documentation on DISABLE_COPY_MOVE macros
2019-11-27 09:50:30 +10:00
itsmattkc
d5b1768d70
reimplement Q_DISABLE_COPY_MOVE for full compatibility with versions < 5.13
...
I was under the impression Q_DISABLE_COPY_MOVE was a much older function than
it is. Since we historically target 5.6 and these functions are small
convenience functions, I just implemented them in the actual codebase.
2019-11-24 14:57:57 +09: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
2fdf78df4a
implemented preliminary pre-cacher for audio
...
FFmpegDecoder now implements an "indexer" for audio, which actually just
extracts the raw PCM audio from an audio codec and saves it to disk
2019-10-24 16:36:26 +11:00
itsmattkc
7dec79ceaa
various changes to rendering flow and structure
2019-10-23 00:42:52 +11:00
itsmattkc
09b3a1970d
underline clips that are linked
2019-10-17 11:07:36 +11:00
itsmattkc
578345693b
improved windows functionality
2019-10-16 22:32:51 +11:00
itsmattkc
79d1f99fa8
removed active instance count from rational class
2019-10-11 10:59:19 +11:00
itsmattkc
fb585413a5
fixed bug in rational that caused integer overflows
2019-10-11 09:35:28 +11:00
itsmattkc
405f4e5e00
updated timeline tools to take custom mouse events
2019-10-11 09:35:11 +11:00
itsmattkc
df9255ce0b
timeline views can be siblings
2019-10-07 09:01:11 +11:00
itsmattkc
8df4cf2cdc
audiomanager implementation
2019-09-27 03:01:09 +10:00
itsmattkc
887e1ddf61
initialize msg_type in debug handler
2019-09-26 13:44:04 +10:00
itsmattkc
56e3fd41e5
various UI reimplementations from 0.1.x
2019-09-26 03:49:49 +10:00
itsmattkc
9fa22938b9
work towards making timeline actions all undoable
2019-09-23 23:00:15 +10:00
itsmattkc
30be1b626d
further ripple progress
2019-09-19 17:05:41 +10:00
itsmattkc
93492bd51e
implemented snapping
2019-09-17 23:01:51 +10:00
itsmattkc
1207e180ec
fix for transport streams with no duration
2019-09-17 13:40:23 +10:00
itsmattkc
e76ba958da
msvc considers 'long' a 32-bit type rather than 64-bit
2019-09-13 02:00:04 +10:00
itsmattkc
6dc62a8703
added custom debug handler
2019-09-10 23:44:35 +10:00
itsmattkc
c2e59b0855
alpha over and opacity nodes are now functional
2019-09-06 15:45:12 +10:00
itsmattkc
f2972651af
several adjustments to node caching system
2019-09-02 11:29:50 +10:00