Commit Graph
889 Commits
Author SHA1 Message Date
itsmattkc 53551246da decoder: signal indexing progress
Better UI interactions, actually shows the progress of the index function in
the task manager now.
2020-02-19 12:19:42 +11:00
itsmattkc 03bdf01357 decoder/renderer: no longer index automatically as part of the retrieve
functions

Indexing is a lengthy process and had a high chance of getting RenderWorkers
stuck doing it rather than being responsive to cache requests. This commit
introduces a system where workers never index media, but instead signal that
media is not ready to their RenderBackends which ensure that the media gets
indexed and re-queues the affected frames when those indexes are ready.
2020-02-19 11:44:29 +11:00
itsmattkc 5e75e9b3b0 waveinput/output: allowed external access to data length value 2020-02-19 11:40:54 +11:00
itsmattkc f63106b2d6 stream: wrote indexing data into the stream classes rather than having them
in the decoders
2020-02-19 11:40:05 +11:00
itsmattkc 4c4b91afd6 viewerglwidget: fix bug that didn't clear the viewport correctly on empty frames 2020-02-19 11:34:21 +11:00
itsmattkc fe1f7626d1 Merge branch 'master' of https://github.com/olive-editor/olive 2020-02-17 16:35:15 +11:00
itsmattkc 757854c4b3 viewer: detect nouveau and warn
Nouveau has poor compatibility with Olive (and most other graphically intensive
applications). For user benefit, we throw a warning messagebox if we detect the
user is using Nouveau.
2020-02-17 16:32:38 +11:00
itsmattkc 8265fef5c5 viewer: update renderer parameters if the viewer node's parameters have changed 2020-02-17 15:34:26 +11:00
itsmattkc 6eeae7b15e timebasedwidget: move center scroll functionality to base class so widgets like
Viewer can use it
2020-02-17 15:21:10 +11:00
itsmattkc 139127ed3c Merge branch 'master' of https://github.com/olive-editor/olive 2020-02-17 13:06:09 +11:00
itsmattkc 33a85aa059 audiobackend: fixed issue where audio would be appended rather
than overwritten on some platforms

Despite the fact we don't actually do any reading here, using
QFile::WriteOnly on its own will truncate the file to 0 bytes which is
undesirable. The documentation says QFile::ReadOnly, Append or NewOnly
will prevent this. NewOnly won't work and reads are unnecessary, so
Append was used initially. However on some platforms, Append will _only_
allow writing at the end of the file (ignoring the seek() function)
meaning bytes won't be written where they're meant to be (this behavior
happens on Linux and not on Windows, the platform discrepancy is likely
a Qt bug). Using ReadWrite instead, despite not reading anything,
prevents truncation and allows for writing not at the end of the file.
2020-02-17 11:17:21 +11:00
itsmattkc 21affd4e58 renderers: add early functions for cancelling long render processes 2020-02-17 02:15:28 +11:00
itsmattkc 55cdd47933 indextask: fixed typo and pass cancelled signal to Decoder::Index() 2020-02-17 02:14:32 +11:00
itsmattkc 73ba2f4c96 taskdialog: complete implementation of TaskDialog 2020-02-17 02:14:11 +11:00
itsmattkc 705b7f3d86 projectmanagers: set title automatically and pass cancelled signal to sub functions 2020-02-17 02:13:49 +11:00
itsmattkc e88d11af68 item: ensure header has a cancelled ptr 2020-02-17 02:12:53 +11:00
itsmattkc 1dc29f67f3 rendercanceldialog: base on ProgressDialog rather than LoadSaveDialog 2020-02-17 02:12:29 +11:00
itsmattkc 839abdff45 core: use TaskDialog instead of ProgressDialog 2020-02-17 02:11:56 +11:00
itsmattkc c0d42c4fda taskmanager: fixed typo and restricted taskmanager to one task at a time for now 2020-02-17 02:11:04 +11:00
itsmattkc 22046535ca various: added hooks so that various lengthy functions could be cancelled from another thread 2020-02-17 02:10:12 +11:00
itsmattkc fd49b6eb55 taskdialog: created ProgressDialog-based dialog for modal tasks 2020-02-17 02:05:40 +11:00
itsmattkc dcfa0a5c34 files: renamed LoadSaveDialog to ProgressDialog 2020-02-17 02:05:11 +11:00
itsmattkc ceb70a1870 viewer: use internal texture to allow viewer to control texture as part of its
context

More intuitive code flow and allows the user to undock the viewer (which
forcibly destroys and recreates the context) and the viewer will handle
creation of the new texture in said new context.
2020-02-16 18:24:49 +11:00
itsmattkc 21755c7f20 taskmanager: ensure task is finished before deleting it
Fixes race condition that could result in a segfault if a Task hadn't emitted
Finished() before it was destroyed by TaskManager.
2020-02-16 13:01:38 +11:00
itsmattkc ce889f68d5 nodeview: allow users to place a node on an edge to automatically connect it
between the two nodes

UI convenience. Edge highlights when the cursor is in range to perform this
action.
2020-02-16 12:40:12 +11:00
itsmattkc a987899e5c nodeparamviewwidgetbridge: connect checkbox "clicked" signal rather than
"toggled"

Only signal a change if the user made one. Toggled would be signalled even when
we set it programmatically (e.g. by simply creating the checkbox widget and
setting its state) causing unnecessary re-caches of the sequence.
2020-02-16 12:37:10 +11:00
itsmattkc a6f4922d66 nodeview: allow esc key to cancel adding a node 2020-02-16 11:44:35 +11:00
itsmattkc fa0f732d39 nodeview: attach new nodes to mouse for easier placement 2020-02-16 11:19:26 +11:00
itsmattkc 080fe22969 taskmanager: made AddTask() a slot so it can be queued from other threads 2020-02-16 10:29:11 +11:00
itsmattkc e93c3d4ce4 taskmanager: try to start next waiting tasks when a task finishes
Fixes bug where tasks would get stuck indefinitely.
2020-02-16 10:28:34 +11:00
itsmattkc 35ab379e9f ffmpegdecoder: updated comment to better describe error handling 2020-02-16 10:28:18 +11:00
itsmattkc cb3ef5d994 decoder: ensure indextask is started in the taskmanager's thread 2020-02-16 10:27:23 +11:00
itsmattkc de71bacdf1 msvc: suppress C4100 warning 2020-02-15 14:47:59 +11:00
itsmattkc b44d7165c5 nodeviewitem: toggle expanded state on double click 2020-02-16 01:05:41 +11:00
itsmattkc 1776615999 viewer: map context menu position from sender rather than itself 2020-02-16 00:57:34 +11:00
itsmattkc 4c6e56320a msvc: suppress C4267 warning 2020-02-16 00:57:00 +11:00
itsmattkc cdfba418fc ffmpegdecoder: added fixme comments for errors that aren't handled 2020-02-16 00:45:36 +11:00
itsmattkc c74134b5b0 viewer: catch ocio exception when creating new processor 2020-02-16 00:34:12 +11:00
itsmattkc 24c926e769 renderer: use ocio config in hash as well
Fixes potential bug where the same named colorspace in a different config
would pull old/likely inaccurate cached frames.
2020-02-16 00:14:46 +11:00
itsmattkc aa00705eb6 transform: initial uniform scale implementation 2020-02-15 23:59:11 +11:00
itsmattkc 3efbcc28ef ffmpegdecoder: improved index reliability 2020-02-15 23:39:33 +11:00
itsmattkc 53106e1847 opengl: remove locks from texture
These are not used anymore and are therefore unnecessary.
2020-02-15 14:02:00 +11:00
itsmattkc f5de19dd6b ffmpeg: allow decoders immediate access to frames even while indexing
Previously, FFmpeg decoders needed to wait for the initial index to finish
before they could retrieve frames. Now they can retrieve frames while the
index is occurring, provided the appropriate frame has already been indexed (if
not, the retrieve will need to wait still).
2020-02-15 13:57:29 +11:00
itsmattkc 97dadace1f shaders: added stroke shader 2020-02-14 19:13:30 +11:00
itsmattkc 0bee4b2e14 boxblur: added 'repeat edge pixels' parameter 2020-02-14 14:56:09 +11:00
itsmattkc 721ec1fe9b gaussianblur: added 'repeat edge pixels' parameter 2020-02-14 14:52:09 +11:00
itsmattkc b0e7ae34ba videorenderworker: improve download code 2020-02-14 14:51:40 +11:00
itsmattkc f36c635b05 openglbackend: call base function in CloseInternal() 2020-02-14 14:51:11 +11:00
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