itsmattkc
c324de804c
audiomanager: create and delete future watchers when necessary
2020-06-26 00:21:34 +10:00
itsmattkc
7523db099b
cmake: use improved FindOpenEXR module
2020-06-26 00:21:12 +10:00
itsmattkc
e8c8fedcdb
slider: stop ladder drag timer on release
2020-06-18 17:50:28 +10:00
itsmattkc
a717742cbc
nodetable: show values in separate columns
...
Works for vector coordinates (e.g. XY, XYZ, etc.) as well as displays
checkboxes for RGB/A. Still non-functional.
2020-06-18 15:07:47 +10:00
itsmattkc
897b9ca3dd
statusbar: disconnect old task when connecting a new one
2020-06-18 15:06:07 +10:00
itsmattkc
c5dd406ff1
slider: improved ladder usability
2020-06-18 14:11:50 +10:00
itsmattkc
5397457c8d
timeline: treat non-primary clicks as non-moving
...
Fixes bug where drag would get stuck if the user right clicked on the
timeline.
2020-06-18 03:35:59 +10:00
itsmattkc
4b0e6f97f7
Merge branch 'master' of https://github.com/olive-editor/olive
2020-06-17 20:50:21 +10:00
itsmattkc
57eb039b4c
debug: print graphics driver in debug log
...
Might help with debugging GPU issues from users.
2020-06-17 20:50:03 +10:00
itsmattkc
e0d27490e7
Merge branch 'master' of https://github.com/olive-editor/olive.git
2020-06-17 19:56:27 +10:00
itsmattkc
b456b6b0f6
oiiodecoder: make sure spec is used instead of basetype
...
Fixed issue with image alpha handling.
2020-06-17 19:53:21 +10:00
itsmattkc
a818e17c55
export: made progress on headless export
...
Still incomplete and unusable, but less so than before.
2020-06-17 18:06:50 +10:00
itsmattkc
c3c26a8e24
cache: use openexr directly
...
OIIO lacks fidelity over OpenEXR's threading. Using it directly gives us
a little more control.
2020-06-17 17:49:54 +10:00
itsmattkc
2261f1147d
renderer: catch failure to load pre-cached frame
2020-06-17 17:48:41 +10:00
itsmattkc
a871c5081b
nodeparamtable: bare bones table view for node inputs
2020-06-17 17:48:07 +10:00
itsmattkc
1b6e9c1c79
viewer: moved nouveau to application launch rather than viewer init
...
Viewer init was kind of too late since in many cases the sequence
would start caching and crash the app before the user could even read
the message. Moving to the startup makes it clearer from the beginning.
2020-06-17 03:00:00 +10:00
itsmattkc
29d56a1583
timeline: implemented UI indicator for tools like razor and edit
2020-06-16 18:30:00 +10:00
itsmattkc
67ee78ac9a
nodeparamview: allow disconnecting nodes by right clicking the "connected to" label
2020-06-16 17:48:10 +10:00
itsmattkc
f107c9bba1
nodeview: associated pasted nodes
...
Prevents nodes being erroneously filtered out.
2020-06-16 17:17:47 +10:00
itsmattkc
cadb703ed8
ui: made os integration more universal
...
ProgressDialog doesn't have to worry about the platform anymore, now
MainWindow will determine what to do or whether to ignore certain progress
indicator functions.
2020-06-16 16:55:11 +10:00
itsmattkc
e979ce4d7a
nodeview: made an "infinite scroller"
...
Set scene rect to huge and hid the scrollbars. The node view should be
scrolled with middle click or the hand tool.
2020-06-16 16:31:16 +10:00
itsmattkc
62c23e8ed1
timeline: allow re-labelling clips
2020-06-16 16:30:31 +10:00
itsmattkc
41b04d976c
nodes/clips: use node label as clip name and allow changing multiple labels at once
...
Merges the "clip name" and "node label" into the same entity.
2020-06-16 16:23:05 +10:00
itsmattkc
cbbf1c9149
framehashcache: use correct linesize when saving EXR
...
Fixes stride issues on non-standard frame sizes.
2020-06-16 15:38:23 +10:00
itsmattkc
71fa821e52
nodeview: enforce minimum scale
2020-06-16 15:37:11 +10:00
itsmattkc
5980737742
timeline: ignore subtitle tracks for now
2020-06-16 15:17:21 +10:00
itsmattkc
dc86e18eb6
slider: remove old debug info
2020-06-16 15:17:01 +10:00
itsmattkc
66b63535a3
renderer: null check before hashing
...
Fixes segfault.
2020-06-16 15:16:52 +10:00
itsmattkc
89b3fa33f8
slider: update behavior for usability and qt 5.15
2020-06-16 14:52:53 +10:00
itsmattkc
8d21a2c1ef
ffmpegdecoder: restore multithreading
2020-06-16 13:34:49 +10:00
itsmattkc
cf17bbc80b
viewer: removed unnecessary background cache triggers
...
This was extremely aggressive and led to cache tasks that would return
even if you cancelled them. This should work a lot better.
2020-06-16 04:07:55 +10:00
itsmattkc
f70f266ca0
render: queue audio alongside video
...
Previously, audio was all queued first and would therefore all have to
finish before any video frames could start caching. No longer! Now they're
queued side by side so users won't have to wait for audio to finish before
their cached frames come in.
2020-06-16 03:49:12 +10:00
itsmattkc
3a4e13a04f
Merge branch 'master' of https://github.com/olive-editor/olive.git
2020-06-16 03:10:19 +10:00
itsmattkc
6a4f3f613c
rendertask: remove sorting code and calculate duplicate hashes while retrieving
...
These are two changes that speed up when frames start getting rendered
and processed (particularly for larger scale projects):
* Sorting of time beforehand was done to optimize decoding but is actually
unnecessary since the frames are already sequential when they're retrieved
from the range. As long as we maintain that order, no sorting is required.
This speeds up caching IMMENSELY.
* Evaluate hashes concurrently while retrieving frames. Before, this was
done before any rendering and could therefore delay rendering by several
seconds. Doing them concurrently means frames start rendering almost
immediately and further hashes can be analyzed while we wait for frames to
finish rendering.
2020-06-16 03:07:53 +10:00
itsmattkc
406f61e546
ffmpegdecoder: use last timestamp for initial seek calculations
...
Fixes bug that would destroy cache performance. Like... just annihilate it.
Like an absolute nuclear holocaust of cache performance.
2020-06-16 02:58:21 +10:00
itsmattkc
41fc50f412
slider: initialize dragged diff to 0
...
Fixes undefined behavior on first drag of a slider.
2020-06-16 02:51:35 +10:00
itsmattkc
2e3072623a
renderer: use qvectors instead of qlists
...
Should be much more efficient for large-scale projects.
2020-06-16 02:45:16 +10:00
itsmattkc
cc463c7c60
viewer: allow temporarily suspending the auto-cache
...
While the auto-cache will always default to on, there are cases where the
user may not want the viewer to barrel ahead caching something (footage
viewer for instance or if the user is making a lot of changes in a short
amount of time).
2020-06-15 18:28:11 +10:00
itsmattkc
45917cfd29
project: use backslashes on windows
...
Backslashes are the normal directory delimiter for Windows so Windows users
will likely be more comfortable with this. Also prevents issues where a
filename may appear twice in the "open recent" list for both slash
directions.
2020-06-15 18:20:49 +10:00
itsmattkc
95dbeac8a5
viewer: don't show playback queue warning if past the video's end point
2020-06-15 15:42:49 +10:00
itsmattkc
f2ab9839e5
project: save to temp folder first and then overwrite actual file
...
With this commit, we save to a temporary file first and then cat the end
run a copy to overwrite the source file. If the save somehow fails or the
program crashes mid-save, this will prevent the user's project file from
getting corrupted.
2020-06-15 15:41:24 +10:00
itsmattkc
4c548bc6a5
slider: implemented value ladder
...
Allows finer control over value changes.
2020-06-14 03:56:18 +10:00
itsmattkc
49cf9f4458
richtextdialog: finalized functionality in dialog
2020-06-14 01:20:21 +10:00
itsmattkc
9a49235e40
addtool: better snapping
2020-06-14 01:20:02 +10:00
itsmattkc
37b7330274
text: added crude basic rich text dialog
...
To be expanded upon...
2020-06-13 20:04:17 +10:00
itsmattkc
4c14ab6498
add tool: allow adding on a track that doesn't exist yet
2020-06-13 20:03:06 +10:00
itsmattkc
282824ac49
volume: base off math node
...
Shares code with math node rather than having it twice.
2020-06-13 18:13:07 +10:00
itsmattkc
21e6085c32
project: removed proxy path
...
The proxy is now a pre-cache, so there are no longer distinct folders
for it.
2020-06-13 13:06:10 +10:00
itsmattkc
cb5b201054
nodeviewitem: base highlight color off palette
...
Improves appearance in light theme.
2020-06-13 13:05:19 +10:00
itsmattkc
db8b825876
textnode: implemented vertical align field
2020-06-13 03:42:26 +10:00
itsmattkc
469b1e92d0
nodes: implemented basic text node
2020-06-13 03:01:35 +10:00
itsmattkc
5c5f09a20c
renderer: added generate job
...
For nodes that produce an image on the CPU before sending it to the GPU.
2020-06-13 03:01:23 +10:00
itsmattkc
0c9435c94d
frame: implemented set pixel function
...
Counterpart to Frame::GetPixel()
2020-06-13 03:00:41 +10:00
itsmattkc
209fb536f5
nodeview: when changing selected blocks, temporarily ignore selection change signal until the end
...
UI optimization.
2020-06-12 23:27:11 +10:00
itsmattkc
b28413a2af
timelineworkarea: fixed bug where loaded projects would always have an enabled workarea
2020-06-12 23:25:44 +10:00
itsmattkc
0abfdd1b65
timeline: improved context menu for selected clips
2020-06-12 21:55:43 +10:00
itsmattkc
0fd8613bca
core: set config defaults before anything else
...
Ensures media cache folder isn't created in `~/.local/share` root and its
own folder instead.
2020-06-12 17:22:05 +10:00
itsmattkc
af5097bf5f
nodes: revert shader ID to string
...
Much easier to manage this way and fixes a compile issue on several
platforms.
2020-06-12 16:02:29 +10:00
itsmattkc
204372170f
speeddurationdialog: fixed behavior issues
2020-06-12 14:54:25 +10:00
itsmattkc
23365074f0
samplebuffer: fixed segfault when changing speed
2020-06-12 14:53:27 +10:00
itsmattkc
955d4ce910
opengl: clear ping-pong texture before blitting to it
2020-06-12 03:44:43 +10:00
itsmattkc
7b9764254d
math: generate alpha channel only if multiplying a texture by a matrix
2020-06-12 03:44:23 +10:00
itsmattkc
6b7925302f
polygon: generate texture with alpha channel
2020-06-12 03:44:07 +10:00
itsmattkc
e547d5b116
audioparams: removed debug message
...
Not really necessary now. Specific situations can always print debug info
if the params are invalid.
2020-06-12 03:32:27 +10:00
itsmattkc
c80f72481d
viewer: shortened re-cache wait interval
2020-06-12 03:31:49 +10:00
itsmattkc
e2e8a6859c
renderer: updated audio to work with minor node overhaul
2020-06-12 03:28:43 +10:00
itsmattkc
a6a5c113ca
nodeinput: added convenience function for determining if a value is expected to change over time
2020-06-12 03:27:52 +10:00
itsmattkc
b3d7158e8e
matrix: ensure an identity matrix is created if all values are default
2020-06-12 03:27:36 +10:00
itsmattkc
54091549df
samplebuffer: added convenience functions for altering sample data
2020-06-12 03:27:14 +10:00
itsmattkc
ffebe70a65
audiovisualwaveform: fixed bug that would make all channels the same
2020-06-12 03:27:00 +10:00
itsmattkc
bad60fc5f0
audioplaybackcache: no-op if params are invalid
2020-06-12 03:26:34 +10:00
itsmattkc
dd7af0e6bd
nodes: minor overhaul to functionality
...
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc
663cf4a020
pixelformat: added convenience functions for determining the format equivalent with and without an alpha channel
2020-06-11 21:27:42 +10:00
itsmattkc
23d92df3c8
nodeviewitem: don't expand if control is held during the double click
2020-06-11 21:27:18 +10:00
itsmattkc
aa11fd2d04
viewer: cancel all render tickets when displaying a null texture
...
Fixes a race condition if a frame is requested shortly before moving to
the end of the timeline.
2020-06-11 21:26:49 +10:00
itsmattkc
ccf5d4cece
audiovisualwaveform: detect if the start index exceeds the buffer sample count
...
Fixes segfault.
2020-06-11 21:24:50 +10:00
itsmattkc
a9a13c4b0c
framehashcache: remove code for saving integer-based frames to cache
...
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc
71ec148e76
renderer: moved all shader code into one solidified function
...
Makes texture-based optimizations easier when they're all in one place.
2020-06-10 01:54:02 +10:00
itsmattkc
29537fea3c
app: don't use hidpi application attribute
...
This seems to cause issues on various platforms and isn't required a lot of the
time:
* macOS doesn't need this since the HiDPI setting is in the bundle's Info.plist
* Windows doesn't need this, in fact it seems to make fractional HiDPI worse
* Linux... who knows how to get HiDPI working on Linux
2020-06-09 16:18:14 +10:00
itsmattkc
494609410b
timeline: when trimming, removing adjacent if its length is reduced to zero
2020-06-09 15:38:47 +10:00
itsmattkc
43513a2b3c
Merge branch 'master' of https://github.com/olive-editor/olive
2020-06-09 13:56:34 +10:00
itsmattkc
4b311ea3bf
projectexplorer: added unused attribute to parameter that should be used later
...
Fixes another GCC build issue.
2020-06-09 13:53:51 +10:00
itsmattkc
0f301cfdcc
manageddisplaywidget: show colorspaces as well as DVL
2020-06-09 13:53:20 +10:00
itsmattkc
f436bab2d5
sequence: initialize values when loading from XML
2020-06-09 13:31:43 +10:00
itsmattkc
6d465c0aaf
Merge branch 'master' of https://github.com/olive-editor/olive.git
2020-06-09 13:08:20 +10:00
itsmattkc
a18d523b51
projectexplorer: appropriately renamed "proxy" to "pre-cache"
2020-06-09 02:37:11 +10:00
itsmattkc
e10b1462ff
renderbackend: moved bulk of hashing code to static function so more code has access to it
2020-06-09 02:36:11 +10:00
itsmattkc
2fc1ccebf7
openglproxy: implemented extra function for loading pre-cached frames into textures
2020-06-09 02:35:41 +10:00
itsmattkc
52ca18d5e1
viewer: moved cached frame loading code so that more classes have access to it
2020-06-09 02:35:13 +10:00
itsmattkc
9095dfa463
project: replaced proxy with pre-cache
...
Removed proxy task and replaced with a true honest-to-god pre-cache for
footage. This footage is pre-cached to a sequence and therefore 100% ready
for use in it once the task is done.
2020-06-08 23:17:51 +10:00
itsmattkc
50b4c1e456
sequence: rather than a static divider in config, default to a heuristically generated one
2020-06-08 15:18:01 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
ee3fa529cb
audiovisualwaveform: reinterpret cast to char*
...
Bypasses GCC warning about qfloat16's constructor.
2020-06-08 04:03:24 +10:00
itsmattkc
532af463f0
sequencedialog: extended sequence dialog to include presets
...
Also includes the ability to make custom presets which negates the need for
setting default sequence parameters in preferences.
2020-06-08 03:12:54 +10:00
itsmattkc
b9de8ea035
rendertask: include audio in progress signal
2020-06-06 18:24:28 +10:00
itsmattkc
be784591fc
timeline: optimized pointer tool ctrl+drop
2020-06-06 17:50:23 +10:00
itsmattkc
aaee2ab9ed
timeline: vastly improved snapping
2020-06-06 13:59:49 +10:00
itsmattkc
5055c136b6
renderer: clear graph update queue when disconnecting a viewer
2020-06-06 01:02:03 +10:00
itsmattkc
550d30ed8f
viewer: rewrote playback code for stability
...
The viewer playback used to rely primarily on the vsync, which was
extremely smooth, but had issues when there was only audio or the viewer
was hidden. This was bodged by attaching to the audio in these scenarios,
but still not perfect.
Now we run a timer in tandem with vsync for the best of both worlds.
Playback is no longer wholly reliant on vsync, yet the viewer can remain
as smooth as possible using vsync.
2020-06-06 00:20:06 +10:00
itsmattkc
bad039e7a9
playbackcache: don't invalidate if the cache has no length
...
Prevents zero-length invalidations.
2020-06-05 17:21:46 +10:00