Commit Graph
2728 Commits
Author SHA1 Message Date
itsmattkc 9de164cfba ffmpeg: disable multithreading in favor of our own
Our renderer system is already heavily multithreaded and prioritized to keep the
main thread active. As a result, FFmpeg receives little benefits from being
multithreaded and is actually detrimental to our main thread as it hasn't been
prioritized to keep the main thread as active as possible.
2020-02-14 10:08:19 +11:00
itsmattkc d66425c324 prepared gl improvements for merge 2020-02-14 02:35:10 +11:00
itsmattkc 6a47b05ab8 work on oslworker 2020-02-14 02:13:38 +11:00
itsmattkc fa40d1b682 aboutdialog: very minor code organization 2020-02-13 15:39:35 +11:00
itsmattkc 422e447f13 oslworker: comment accelerated node function to allow compiling for now 2020-02-13 15:38:54 +11:00
itsmattkc cc8e5bc9d2 opengl: don't share contexts and use older version 2020-02-13 15:38:11 +11:00
itsmattkc a197fc9c08 cmake: don't warn about unused parameter 2020-02-13 15:37:18 +11:00
itsmattkc 888e688385 work towards implementing osl as a renderer 2020-02-12 15:13:51 +11:00
itsmattkc 5e5be50959 cmake: find OSL 2020-02-08 00:14:13 +11:00
itsmattkc fd44c94fc8 mainwindow: use app name and version in window title 2020-02-08 00:13:56 +11:00
itsmattkc 2ba928fa1f code cleanup: renamed qtversionabstraction.h to qtutils.h 2020-02-08 00:13:38 +11:00
itsmattkc 1ae2c8b128 fixed mingw compile issue 2020-02-07 12:42:19 +11:00
itsmattkc 1e71c0e7f5 oslbackend: began new backend classes 2020-02-05 14:49:55 +11:00
itsmattkc 91f1be90a9 opengl: isolate all functions to one thread 2020-02-03 18:14:58 +11:00
itsmattkc 776cfd87c8 renderer: minor code improvements 2020-02-03 12:41:20 +11:00
itsmattkc 0c46b0c471 decodercache: don't need thread-safe functions anymore 2020-02-03 01:29:29 +11:00
itsmattkc caf0d3d42a renderer: minor code improvements 2020-02-03 01:29:03 +11:00
itsmattkc 40e8aec285 viewer: minor code improvements 2020-02-03 01:27:45 +11:00
itsmattkc 110b5741e0 nodes: remove user input mutexes
These were no longer ever used and thus served no purpose.
2020-02-03 01:27:00 +11:00
itsmattkc 9b7cbb3fbd viewer: automatically update maximum scroll from media length 2020-02-01 23:09:25 +11:00
itsmattkc c0360abee1 toolpanel: override Retranslate() 2020-02-01 22:28:14 +11:00
itsmattkc 2fef893fd0 panels: override Retranslate() rather than reimplementing changeEvent() in every derivative 2020-02-01 22:11:14 +11:00
itsmattkc 42989994ca fixed reference to DBL_MAX 2020-02-01 21:35:30 +11:00
itsmattkc 4213209727 fixed gcc compilation issue 2020-02-01 21:27:06 +11:00
itsmattkc 17c1493aa7 all time-based panels are now derived from a common base class
Cuts down on a lot of duplicate code between
TimelineWidget/ViewerWidget/CurveWidget/NodeParamView
and TimelinePanel/ViewerPanel/CurvePanel/ParamPanel since they all use similar
time functions.
2020-02-01 19:39:43 +11:00
itsmattkc 5d58479f0a oiiodecoder: fixed erroneous processing of extension_list 2020-01-26 14:43:45 +11:00
itsmattkc 0469fac4a9 node: send invalidatevisible signal through graph
When dragging a value in the UI, we use a "single frame update" because we want
to prioritize the currently visible frame to give visual feedback as soon as
possible. Previously, we generated a single frame InvalidateCache() signal
from the widgets themselves, but this had the major downside of not necessarily
emitting the time that the viewer was actually showing (due to either node time
transformations or times differing between the effects panels and the viewer
panels). Now, we send a different signal that viewers can handle themselves to
update the time that they're currently showing. This means the fast updating
will work no matter how many viewers are connected at whatever time each viewer
is set to.
2020-01-26 14:16:22 +11:00
itsmattkc ce17d94b12 timeline: don't show speed dialog if no blocks are selected
Prevents segfault opening SpeedDurationDialog with an empty clip list.
2020-01-26 13:37:47 +11:00
itsmattkc f068c425d2 viewer: provide UI to set preview resolution
Previews don't need to be rendered full resolution, particularly since the
preview is hardly ever 1:1 size of the sequence. The functionality to render
at lower resolutions already existed, but there was no UI for it. This commit
implements UI to set the resolution divider on the viewer.
2020-01-26 13:27:06 +11:00
itsmattkc e39e1002f7 travis: use export with upload description env 2020-01-26 12:49:33 +11:00
itsmattkc 8c0dfb6875 imagestream: fixed segfault when changing a project's default input colorspace 2020-01-26 12:22:30 +11:00
itsmattkc 840b41256a travis: use native xenial OIIO package rather than PPA
Now that we support OIIO 1.x, we don't need to use a PPA to install OIIO 2.x on
Xenial. The advantage of this is:

1. Not having to maintain an OIIO PPA.
2. Not messing up anyone's system if they have software installed that's been
linked with OIIO 1.x and then are forced to install over it with OIIO 2.x.
2020-01-26 12:01:53 +11:00
itsmattkc 490a634473 oiiodecoder: fixed segfault caused by some OIIO decoders if they received
unexpected data

When "probing" footage, Olive runs it past all of its decoders until one
responds that it can decode this file. However this caused issues when some
OIIO decoders would erroneously pick up incompatible files, try to read them
and segfault the entire app (notable OpenJPEG with MPEG-4 and RLA with WAVE
audio). We now use the file extension to check with OIIO if it "should" be
compatible before actually testing if it is.

This is not a "perfect" solution (i.e. someone could recreate the segfault by
renaming an MPEG-4 file to an image extension like .JPG), but is probably as
much as can be done Olive-side and should filter out all segfaults under normal
circumstances.
2020-01-26 11:54:49 +11:00
itsmattkc 6bef94b3e2 qt: fixed strange UI issue where hidden floating dock widgets would show as
transparent cuts through the main window on linux

For some reason, setting not visible *after* setting floating would cause this
issue. The other way around does not.
2020-01-26 11:38:24 +11:00
itsmattkc 8b0c7edfec OIIO: added support for OIIO 1.x
OIIO 2.x uses std::unique_ptr while 1.x uses raw pointers. Olive can now handle
both, manually destroying the raw pointers when necessary if running on OIIO
1.x.
2020-01-26 11:33:45 +11:00
itsmattkc 05c25c8713 CI: attempt to set warning for continuous build 2020-01-25 21:46:32 +11:00
itsmattkc 0e82ec600d keyframes: implemented same single frame strategy on bezier control points 2020-01-25 18:00:35 +11: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 6f3ea35d9a CI: adjusted travis hash naming and moved appveyor script 2020-01-25 17:07:41 +11:00
itsmattkc 80c48c7633 block: fixed bug that broke single frame updating from a slider
Optimization that only invalidates cache when the user has stopped sliding to
keep the UI responsive.
2020-01-25 17:01:21 +11:00
itsmattkc f5fe87d959 track: reimplemented invalidate cache block
Optimizes working in the timeline by only invalidating cache when necessary.
2020-01-25 16:38:18 +11:00
itsmattkc 7bb8da8d79 node: rewrote problematic GetExclusiveDependencies() function
Function would erroneously pick up nodes that weren't actually dependencies.
2020-01-25 16:37:28 +11:00
itsmattkc 420e01002e dialogs: fixed regression that broke audio 2020-01-25 13:40:23 +11:00
itsmattkc 3f85ce8a7a diskmanager: clearing disk cache at runtime will correctly signal renderers
Clearing the disk cache in the preferences will correctly communicate to
renderers that those frames are now deleted.
2020-01-25 12:18:46 +11:00
itsmattkc c26070bfb5 appveyor: set TRAVIS_COMMIT for upload.sh 2020-01-25 00:49:04 +11:00
itsmattkc 3cac4dfb51 appveyor: use skip_tags to skip continuous 2020-01-24 14:47:40 +11:00
itsmattkc ca63e6ff89 appveyor: don't build continuous and follow redirects when downloading 2020-01-24 13:12:14 +11:00
itsmattkc 6a6587d3e3 appveyor: force locale to make grep work 2020-01-24 12:57:57 +11:00
itsmattkc d56f425d9c travis: cache brew packages to save time on mac builds 2020-01-24 12:31:43 +11:00
itsmattkc f8ad15013a appveyor: exit script on compile failure 2020-01-24 12:05:14 +11:00