Commit Graph
3629 Commits
Author SHA1 Message Date
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 49cec970f2 Merge pull request #1165 from sobotka/ocio-fixes
Hopefully OCIO fixes
2020-06-14 03:59:28 +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
Troy James Sobotka 7218209e6e Update config.ocio
Fix mistake in the allocation variables that
mangled up the transforms.
2020-06-12 12:02:31 -07: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