Commit Graph
2972 Commits
Author SHA1 Message Date
itsmattkc 4f7fcce367 Merge branch 'master' of https://github.com/olive-editor/olive 2020-03-18 15:03:20 +11:00
itsmattkc 40073dde62 cmake: added crash handler target to install 2020-03-18 15:02:43 +11:00
itsmattkc fed17e35fa audiowaveformview: optimizes waveform to only redraw when necessary
Draws to a pixmap only when the waveform changes so it doesn't have to be
regenerated on every draw. Also renames WaveformView to AudioWaveformView
2020-03-18 14:44:05 +11:00
itsmattkc 5bdee74205 waveformview: corrected rectified waveform algorithm
Fixed bug where code erroneously multipled by full channel height. This is an
incorrect assumption since the full range of -1.0 to 1.0 is 2.0 which means the
difference needs to be halfed to create a range from 0.0 to 1.0.
2020-03-18 14:23:35 +11:00
itsmattkc 27d7822fa9 preferences: added setting for rectified waveforms 2020-03-18 14:23:23 +11:00
itsmattkc abb4c440fb core: added signalling for timecode display changes
Allows targeted application-wide UI updates for when the user changes the
timecode display so that the response is immediate.
2020-03-18 14:09:31 +11:00
itsmattkc eb871ceccc waveformview: implemented rectified waveforms 2020-03-18 14:09:19 +11:00
itsmattkc 69e65f6784 viewer: fixed occasional OCIO bug
Addresses a flaw where if the user changed the OCIO "display", Olive wouldn't
check whether the currently selected "view" still existed in the new display
or not which would create an invalid color processor if not. This commit now
checks whether the new display contains the current view, and sets the default
view for the new display if not.
2020-03-17 03:13:14 +11:00
itsmattkc a1f5c85f49 various: use simpler/smarter XML reading functions
Should address any XML parsing issues and allows for simpler, more maintainable
code. Should also address a crash that could occur when pasting nodes that had
inputs that weren't copied.
2020-03-17 02:38:17 +11:00
itsmattkc 72eb3a5d82 nodeview: worked around qt issue where the selection signal would still be sent after an item was deleted 2020-03-17 00:34:32 +11:00
itsmattkc 1c192100c2 viewer: fixed bug where seeking would be stuck to one frame 2020-03-17 00:01:18 +11:00
itsmattkc 4bc5378116 ffmpegencoder: explicit cast from int64_t to int 2020-03-15 20:08:56 +11:00
itsmattkc 34f60e639a nodeview: implemented copying/pasting nodes
Re-uses XML-based project saving/loading functions to store nodes, their
parameters, and their connections in a text-based format in the clipboard.
2020-03-15 20:01:58 +11:00
itsmattkc 50061e4e55 waveformview: show in/out points in waveformview
Moved drawing routines to the base class that is used by both TimeRuler
and WaveformView
2020-03-15 18:21:14 +11:00
itsmattkc a6fb0c7e2b footageproperties: fixed bug that failed to update image sequence end time 2020-03-15 14:28:26 +11:00
itsmattkc 02e7c68104 timeline: reimplemented linking/unlinking functionality 2020-03-15 13:41:46 +11:00
itsmattkc b57b091ca4 timeline: auto-unlink blocks when they're deleted 2020-03-15 13:15:36 +11:00
itsmattkc 78baf7661f audiorenderer: split audio rendering up into chunks for better parallelism 2020-03-14 23:27:41 +11:00
itsmattkc 1c4411a4ad timebasedwidget/timeruler: reimplemented creating and displaying markers 2020-03-14 23:03:27 +11:00
itsmattkc a56484d3e6 timelinescaledobject: implemented minimum scale
Used by Viewer to keep TimeRuler and WaveformView within restrictions.
2020-03-14 22:34:23 +11:00
itsmattkc 7f2dcc8200 waveformview: made UI seekable 2020-03-14 01:57:40 +11:00
itsmattkc 73d693f2d5 waveformview: implemented basic waveformview display 2020-03-14 01:22:03 +11:00
itsmattkc f0e6f9a5f9 various: created derived class for widget derivations of
TimelineScaledObject

Minor code cleanup, faster than deriving both QWidget and
TimelineScaledObject each time.
2020-03-14 00:45:50 +11:00
itsmattkc 75417f85d1 timeruler: ported common functions to timelinescaledobject
Removed code that was largely duplicated.
2020-03-14 00:40:39 +11:00
itsmattkc 2ac6b601bf renderer: fixed segfault when no texture is generated 2020-03-13 17:03:27 +11:00
itsmattkc fdfe53c700 oiiodecoder: check for sequential images in sequence heuristic 2020-03-13 16:49:59 +11:00
itsmattkc c1c8067ee7 viewer: implemented basic zoom
No scrolling functionality yet, but the zoom is functional and efficient.
2020-03-13 16:41:09 +11:00
itsmattkc 0418c8ab85 viewer: began waveformview widget 2020-03-13 16:02:18 +11:00
itsmattkc e2fe9ad548 viewer: folded waveform view into base viewer widget class 2020-03-13 15:48:09 +11:00
itsmattkc 9e4c79699e node: split off traversing functions from renderer for usage elsewhere
Fixes issue where Viewer node wouldn't pick up correct length if a tracks
weren't in use.
2020-03-13 15:31:15 +11:00
itsmattkc 41da5dbd53 timebasedwidget: added comment explaining scrollbar re-adjustment 2020-03-12 12:06:13 +11:00
itsmattkc d427d48ab1 stroke effect: implemented 'inner' option 2020-03-12 12:04:19 +11:00
itsmattkc c338e6d99d resizablescrollbar: refined timeline scrollbar resizing to be more accurate 2020-03-11 14:11:12 +11:00
itsmattkc 2d57f22f3a oiiodecoder: implemented heuristic to auto-detect start and end index 2020-03-09 20:08:05 +11:00
itsmattkc 16b072fa98 various: allow users to override the start and end index of image sequences
Also includes various fixes to footage property setting/signalling.
2020-03-09 19:58:42 +11:00
itsmattkc 0131d83256 footageproperties: allow for sanity checks before accepting/making changes 2020-03-09 19:56:10 +11:00
itsmattkc 965242cb29 oiiodecoder: set flag on image sequences to identify them as such 2020-03-09 19:55:35 +11:00
itsmattkc 39215a7dd0 footageviewer: direct in/out/markers to footage item rather than assuming a
sequence item
2020-03-09 18:28:57 +11:00
itsmattkc 8cf9327936 timelineviewblockitem: fixed issue that caused waveforms to always appear at
the start of the timeline
2020-03-09 16:57:51 +11:00
itsmattkc dc37389d02 timeline: implemented in/out points 2020-03-08 01:06:45 +11:00
itsmattkc 52fc4f064b timeline: rewrote ripple deleting into an undoable command that takes place
after the gaps are made and cleaned

Results in more reliable ripple delete behavior.

Also fixes bug that would cause gaps that were cleaned and then restored in an
undo to crash when selected.
2020-03-07 20:42:07 +11:00
itsmattkc 8ec3258234 nodeview: added asserts for improved debugging 2020-03-07 20:40:52 +11:00
itsmattkc 38a30b584a timeline: implemented some base ripple delete functionality 2020-03-07 18:07:55 +11:00
itsmattkc d5fdc555e1 timelineviewblockitem: prevent waveforms from exceeding the clip rectangle 2020-03-07 02:47:15 +11:00
itsmattkc f2d6d3b32c timeline/renderer: automatically update timeline view when a visual waveform
has updated
2020-03-07 02:44:15 +11:00
itsmattkc b2792b7c58 volumenode: removed maximum limit
I'm not sure when this was added, but it was not intentional.
2020-03-07 02:43:35 +11:00
itsmattkc 3f043496f3 nodeparam: allowed for dynamic nodeparam property change to affect UI widgets
immediately
2020-03-07 02:16:48 +11:00
itsmattkc c168bf1a80 nodeparam: implemented parameters that allow arbitrary properties to be set
for UI representations

Allows properties to be set without adding explicit extra members to NodeInputs.
Crucially this means parameters like slider value representations (percent,
decibel, etc.) can be set from NodeInputs now.
2020-03-07 01:21:36 +11:00
itsmattkc d12a0dca23 oiiodecoder: fixed mistake when using OIIO 1.x 2020-03-06 17:02:51 +11:00
itsmattkc c75a0e8498 timeline/renderer: implemented basic waveform display support 2020-03-06 16:18:07 +11:00