Commit Graph
100 Commits
Author SHA1 Message Date
itsmattkc b4dd976e90 revised UI color system when showing nodes
Olive now has a set of colors that categories can be "assigned" to. The timeline also shares the same colors as the NodeView. Colors can be configured per node (aka per clip).
2021-01-15 18:44:34 +11:00
itsmattkc 91740dd823 reworked all timeline commands
I'll be honest, this stuff probably caused a lot of crashes. Objects were constantly created and destroyed without the foresight that other commands might be using them. This should fix a lot of that.
2021-01-15 14:36:21 +11:00
itsmattkc 96c0921193 use std::map instead of QMap for the node connections
std::map gives us a reverse iterator which we need. QMap doesn't seem to.
2021-01-15 14:34:36 +11:00
itsmattkc b83677e319 moved input signals to graph to prevent signal desyncs 2021-01-14 10:32:42 +11:00
itsmattkc ad0cefecaf remove now commented out ifdef guard 2021-01-14 10:30:33 +11:00
itsmattkc f7883bd02c began some rewrites to timeline drawing 2021-01-14 10:30:20 +11:00
itsmattkc fbdda3d6d4 various code cleanups 2021-01-13 12:05:05 +11:00
itsmattkc 8f729203fc some timeline refactoring, preparing for rewrites 2021-01-09 11:41:33 +11:00
itsmattkc 3337be07e5 use QVector instead of QList for block cache 2021-01-09 10:41:13 +11:00
itsmattkc 441a459774 viewer: use label instead of media name 2021-01-09 10:38:04 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 19eabf2830 fixed variable that didn't change since it was behind an ifdef guard 2020-12-30 18:27:44 +11:00
itsmattkc c0095a40ce cache platform palette on load 2020-12-30 18:10:38 +11:00
itsmattkc 3024d68d59 fixed unused variable warning 2020-12-30 18:08:43 +11:00
itsmattkc 06b29b3a35 Merge branch 'master' of https://github.com/olive-editor/olive 2020-12-30 14:46:15 +11:00
itsmattkc 78903391a3 timeline: don't snap add tool if snapping is disabled 2020-12-30 10:38:53 +11:00
itsmattkc b604a7271d viewer: fix regression where multiple viewers could play at once 2020-12-30 10:38:34 +11:00
itsmattkc 374fa3f75c moved some files around for better organization 2020-12-16 19:05:22 +11:00
itsmattkc 7849d6f3ff corrections for non shared ptrs in OTIO code 2020-12-16 14:32:18 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +11:00
itsmattkc 1cd07bc1f7 improved footage relink
Interface improvements and uses more heuristics to relink files faster.
2020-12-13 14:27:47 +11:00
itsmattkc 0699795c6f export: implemented audio bit rate setting
The UI for this isn't perfect, I just wrote this in because I needed it. But the backend is solid.
2020-12-04 01:01:50 +11:00
itsmattkc 7dd9115e3f audiowaveformview: clamp start to 0 2020-11-30 12:07:22 +11:00
itsmattkc d2727f1932 minor tweak to fix compilation on linux 2020-11-30 09:32:08 +11:00
itsmattkc 2363f7057c resizabletimelinescrollbar: handle RATIONAL_MAX without overflow 2020-11-30 08:59:53 +11:00
itsmattkc d82f484c4c audiowaveformview: on validation, only update visible sections 2020-11-30 08:57:51 +11:00
itsmattkc b39565cff4 audiowaveformview: multithreaded waveform rendering 2020-11-30 08:18:11 +11:00
itsmattkc f48c8b552b export: calculate total length from individual frames rather than all frames 2020-11-30 07:22:48 +11:00
itsmattkc 9ee523b145 timeline: split gaps only if there's an insert
Fixes regression from 97afae9687
2020-11-29 17:06:56 +11:00
itsmattkc 6a6fa8674a actually stage the new files 2020-11-29 17:05:52 +11:00
itsmattkc c15b734011 timebasedwidget: show workarea and markers on scrollbar 2020-11-29 16:56:00 +11:00
itsmattkc c9323b9731 renderer: added another cancelled check 2020-11-29 12:17:42 +11:00
itsmattkc 97afae9687 timeline: when ripple removing an area, don't split gaps 2020-11-29 12:17:23 +11:00
itsmattkc 720acb8f77 renderer: fixed shadowed property
Fixes issue where waveforms would only appear on one track
2020-11-29 10:20:10 +11:00
itsmattkc 90edc4f933 timebasedwidget: added infrastructure of passing scroll wheel signals to the scrollbar 2020-11-29 10:08:37 +11:00
itsmattkc ee2deb1365 exportdialog: use open rather than exec 2020-11-28 21:27:47 +11:00
itsmattkc d9e445d39e rendermanager: always create tickets in own thread 2020-11-28 21:27:35 +11:00
itsmattkc 73aa3760f3 timeline: initialize variable introduced in last commit 2020-11-28 19:36:57 +11:00
itsmattkc 350df42ad1 timeline: improved rubberband behavior
Improved rubberband responsiveness and show rubberband if dragging from a gap
(or other such immovable block).
2020-11-28 17:31:44 +11:00
itsmattkc 56b17dd69f exportdialog: prioritize preview area when resizing 2020-11-28 10:21:35 +11:00
itsmattkc 24c7c136dc export: set properties before moving thread 2020-11-28 10:21:24 +11:00
itsmattkc 6447aad522 Merge branch 'master' of https://github.com/olive-editor/olive 2020-11-28 08:24:56 +11:00
itsmattkc 466900e579 renderer: mutex around color context creation/retrieval 2020-11-28 08:24:40 +11:00
itsmattkc a2d855b102 improve UI feedback when cancelling a task 2020-11-27 14:47:31 +11:00
itsmattkc 0fa05e1bc9 removed unused file 2020-11-27 14:28:09 +11:00
itsmattkc f8ceefff6c don't use shared ptr on projects
Really unnecessary
2020-11-27 14:24:02 +11:00
itsmattkc 992b6eb952 added plural forms to translatable strings
Fixes #1421
2020-11-27 13:04:49 +11:00
itsmattkc 240fe81961 extend UI styling to 5.15.2 since they still haven't fixed this bug 2020-11-27 12:49:51 +11:00
itsmattkc d02a1aa41b renderer: mutex colorspace and premultiplied fields of video footage 2020-11-27 12:49:40 +11:00
itsmattkc 8a869d0393 use QObject property system now that i know how to signal them 2020-11-27 10:10:24 +11:00
itsmattkc 1deb95b804 renderer: run tickets in the thread they're rendering in
Fixes #1380
2020-11-27 09:30:09 +11:00
itsmattkc f8a5e28c37 code: removed double "protected" marker 2020-11-26 19:53:42 +11:00
itsmattkc f068343a08 oiio: actually store the last opened sequence index
Fixes #1376
2020-11-26 19:53:29 +11:00
itsmattkc 378216acb9 timeline: draw playheads over selections 2020-11-26 19:52:54 +11:00
itsmattkc 210417a5f2 enable undo/redo on node param text editor 2020-11-25 17:17:13 +11:00
itsmattkc afa31e1df8 timeline: don't flip scroll axes on apple trackpads 2020-11-25 17:16:35 +11:00
itsmattkc a043a686c6 timeline: started record tool 2020-11-25 11:53:56 +11:00
itsmattkc b5cc13c10e timeline: snap pointer and import operations to timebase
If frame rates are mixed, ensures that video doesn't end up falling or ending on half frames which potentially make the entire sequence awkward
2020-11-25 11:46:41 +11:00
itsmattkc c35005d1bf renderer: only use different footage dividers on smaller footage 2020-11-25 11:45:42 +11:00
itsmattkc c7f5af9534 moved autoscroll code to TimeBasedWidget rather than TimelineViewBase
Better place for it. Fixes #1406
2020-11-25 10:00:57 +11:00
itsmattkc bd2b3f7a7c gizmos: detect generated images like titles
Fixes #1413
2020-11-25 09:43:15 +11:00
itsmattkc 7cc64927b8 mainwindow: when maximizing panels, fallback to focused panel if hovered panel is null
Fixes #1403
2020-11-25 09:04:15 +11:00
itsmattkc 2b1700e088 Merge branch 'master' of https://github.com/olive-editor/olive 2020-11-25 08:59:26 +11:00
itsmattkc 0eda91a0cb renderer: destroy surface in main thread 2020-11-25 08:59:14 +11:00
itsmattkc 1254726079 transform: set alpha channel required always true for now 2020-11-25 08:57:55 +11:00
itsmattkc b4b0cd6be9 Merge branch 'master' of https://github.com/olive-editor/olive 2020-11-24 11:04:51 +11:00
itsmattkc 1400c313ca timeline: correctly use ptr to qvector rather than qlist
Fixes copy/paste crash
2020-11-24 11:04:33 +11:00
itsmattkc 827c9f93cc AudioVisualWaveform: implement same size check as AudioPlaybackCache to prevent index out of bounds crashes 2020-11-24 11:02:42 +11:00
itsmattkc 2c4f781e13 paramview: discard scroll events on widgets 2020-11-23 12:01:21 +11:00
itsmattkc ade4369199 revise opengl profile 2020-11-23 09:43:48 +11:00
itsmattkc 29f2d3024e timeline: clear selections when disconnecting viewer
Fixes #1400
2020-11-23 09:15:46 +11:00
itsmattkc 7b266c51a4 move clamp to bezier itself to prevent deadlocks 2020-11-23 08:43:02 +11:00
itsmattkc 60f515a2cc transform: added interpolation parameter 2020-11-22 22:53:31 +11:00
itsmattkc ed6f4eed3e core: changed ortho node ID
Fixes collision where transform and ortho nodes had the same ID. Renames ortho ID and automatically corrects
old projects with the old ID. Bumps the project version as a result.
2020-11-22 22:32:09 +11:00
itsmattkc 96ad22d3e6 node: correctly skip element if node param isn't found
Fixes issue where projects could fail to load entirely if a node param was not found.
2020-11-22 22:30:13 +11:00
itsmattkc 3cf4d58716 viewer: rewrote pixel sampling coordinate system
Fixes #1395
2020-11-22 21:25:10 +11:00
itsmattkc cb5c48bd06 config: added default color for category 10 (distort)
I don't actually like this color on this node, but we can change/shift things
around later.
2020-11-22 21:01:21 +11:00
itsmattkc 9928027040 nodeview: clamp bezier value 2020-11-22 20:28:48 +11:00
itsmattkc dbf4a814e1 renderer: added extra null check for texture
Fixes #1392
2020-11-22 19:00:01 +11:00
itsmattkc af0f6163af use floats in viewer scale 2020-11-22 18:47:21 +11:00
itsmattkc 8fb374696a Merge branch 'master' of https://github.com/olive-editor/olive 2020-11-22 18:21:37 +11:00
itsmattkc a6d382f4d4 further improved gizmos 2020-11-22 18:21:24 +11:00
itsmattkc bd215b34bc viewer: simplified sizing algorithm and add padding for fit so gizmos are easier to use 2020-11-22 13:01:52 +11:00
itsmattkc 63bc054b34 correctly mark plural 2020-11-22 13:00:55 +11:00
itsmattkc 54cd244801 nodes: added distort nodes
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc 3e48aef88c renderer: only divide as much as necessary to get within maximum sequence resolution
Prevents lower res images from becoming too low res
2020-11-22 10:32:58 +11:00
itsmattkc 81447c439f opengl: update for shader changes mentioned earlier 2020-11-22 10:32:22 +11:00
itsmattkc 425e69c789 renderprocessor: add generate resolution override 2020-11-22 10:32:01 +11:00
itsmattkc 065fc9e10e miscellaneous shader changes
Since sequence resolution is provided to the nodes now, it no longer needs to be a global in the shaders
Removed some unused shaders
Added default params to ShaderCode to allow skipping types that aren't used
2020-11-22 10:31:37 +11:00
itsmattkc b9e0bfb679 nodes: added distort gizmo 2020-11-22 10:27:49 +11:00
itsmattkc da9a6325aa node: reworked gizmo system 2020-11-22 10:27:37 +11:00
itsmattkc 3167047ded nodetraverser: added abstract function for generating sequence resolution 2020-11-22 10:25:47 +11:00
itsmattkc 7899c396dc nodeinputdragger: acknowledge min/max values if they're set 2020-11-22 10:25:04 +11:00
itsmattkc 5e319a0cdd nodeparamviewwidgetbridge: implemented offsets for more user friendly numeric values 2020-11-22 10:24:35 +11:00
itsmattkc 66bf5db2e1 gizmotraverser: return sequence resolution and adjust texture resolution by pixel aspect 2020-11-22 10:24:07 +11:00
itsmattkc 1b0e69c05b viewer: fixed deinterlacing and pan regression, reworked gizmos 2020-11-22 10:23:32 +11:00
itsmattkc d0bcea3b1d audio: ignore shift event if from time exceeds length 2020-11-21 09:52:24 +11:00
itsmattkc 857e4b046d timeline: when inserting gaps, only do one per track 2020-11-20 19:37:00 +11:00
itsmattkc e4f011831d timeline: don't try to link if no clips are selected 2020-11-20 19:36:43 +11:00