itsmattkc
2716cfa7f5
panels: enforced setting an object name by using a mandatory constructor parameter
2020-04-19 01:35:48 +10:00
itsmattkc
f2bff5f150
menu: ensure all addMenu() calls are followed with setParent() calls
...
Ensures memory taken by creating a new menu is freed.
2020-04-19 01:26:54 +10:00
itsmattkc
0c88a146c1
projectexplorer: added new menu to context menu
2020-04-19 01:16:55 +10:00
itsmattkc
55dcf0f5fd
projectexplorer: added functionality for opening a folder in another tab/window
2020-04-19 01:11:50 +10:00
itsmattkc
93e5e7c0c1
core/mainmenu: implemented save/close all/current actions for multiple projects
...
Expands on UI from multiple project support implemented earlier.
2020-04-19 00:37:44 +10:00
itsmattkc
aecd381e6b
nodeparamviewitem: show arrays in NodeParamView
...
Uses nested widgets to show array objects in the NodeParamView.
2020-04-19 00:04:22 +10:00
itsmattkc
fa0afb74c8
solid: updated default value to use new syntax
...
Using ':' instead of ',' should avoid any potential internationalization issues
regarding languages that use ',' for decimals rather than '.'
2020-04-19 00:03:05 +10:00
itsmattkc
a796cb2c13
nodeparamview: separated the NodeParamView body into a separate widget for nesting
...
Will allow display of NodeInputArrays.
2020-04-18 23:28:11 +10:00
itsmattkc
707e9d5522
project: fixed bug where ocio config wouldn't automatically load from a saved project
2020-04-18 17:55:23 +10:00
itsmattkc
d3b71e6576
nodes: color management when setting color parameters is now preserved
2020-04-18 17:43:37 +10:00
itsmattkc
f73c41d3fa
various: implemented multiple project support
...
This required various changes to various parts of the infrastructure (mostly
using paths to finding the "root project" of any given object throughout).
Now theoretically infinite projects can be opened and accounted for at any
given time.
2020-04-18 01:50:47 +10:00
itsmattkc
77c0db55a5
viewer: implemented display of title/action safe margins
2020-04-17 18:59:17 +10:00
itsmattkc
6df708028f
core: reimplemented "open recent" functionality and opening a project from command line
2020-04-17 02:57:56 +10:00
itsmattkc
5f23fa24a7
config: use qstringliteral for config filename
...
Minor optimization.
2020-04-17 02:56:50 +10:00
itsmattkc
832cc986b7
timeline/block: reimplemented enabling/disabling blocks
2020-04-17 02:16:04 +10:00
itsmattkc
78c3c10e5f
timeline: reimplemented deleting/ripple deleting the in/out region
2020-04-17 01:41:20 +10:00
itsmattkc
d8e0a31375
color: when converting to a QColor for UI, clamp to 0.0-1.0
2020-04-17 01:17:14 +10:00
itsmattkc
df5b66c3c7
nodeparamview: show connections in the param view
2020-04-17 01:07:13 +10:00
itsmattkc
42905d1d51
mainmenu/menushared: rewrote convenience functions to use new qt signal/slot syntax
...
Code improvement
2020-04-17 00:20:46 +10:00
itsmattkc
a5c1de6df3
timebasedwidget: implemented go to in/out
2020-04-17 00:20:16 +10:00
itsmattkc
a93b06b7a2
Revert "solid shader: moved from generator to input category"
...
This reverts commit 07dfe1c364 .
2020-04-16 23:15:19 +10:00
itsmattkc
df534fadbe
common: added function to convert any number to a hex string
...
Helps with debugging.
2020-04-16 23:13:35 +10:00
itsmattkc
2f80be437a
node: fixed issue with "taking" values from input tables
...
As opposed to simply leaving all values in the table, nodes can now "take"
values that they use to free up memory (e.g. "taking" input buffers if they're
used to produce an output buffer).
This is a fairly large change, expect regressions.
2020-04-16 23:12:05 +10:00
itsmattkc
cc8699c0bc
colordialog: don't clamp values
2020-04-16 15:26:05 +10:00
itsmattkc
8656b79319
opacitynode: switch view to percent rather than as a normal number
2020-04-16 14:54:46 +10:00
itsmattkc
b4795c0222
blur: merged box and gaussian blurs into one node
...
While these are two separate blur effects, merging them into one node will
allow quick swapping of blur methods.
2020-04-16 13:17:30 +10:00
itsmattkc
61654e8127
Merge branch 'master' of https://github.com/olive-editor/olive
2020-04-16 12:23:52 +10:00
itsmattkc
ca071beb33
Merge branch 'master' of https://github.com/olive-editor/olive
2020-04-16 12:21:09 +10:00
itsmattkc
32969d2403
colordialog: updated to show input/reference/display values
2020-04-15 18:11:46 +10:00
itsmattkc
9cc4349054
timebasedwidget: re-implemented toggle show all function
2020-04-15 15:31:54 +10:00
itsmattkc
2610d58ae3
footagecombobox: fixed bug where footagecombobox would display null on first showing
2020-04-15 03:59:46 +10:00
itsmattkc
cc421d4108
keyframeview: show correct length and jump to the corresponding time in NodeParamView
2020-04-15 03:35:48 +10:00
itsmattkc
7ea8c52c78
/nodeparamviewwidgetbridge: block combobox signals when updating from node
...
Prevents unnecessary re-caching caused by the combobox signalling that its
value has changed when we're really just setting the value that the node already
has.
2020-04-15 02:52:24 +10:00
itsmattkc
07dfe1c364
solid shader: moved from generator to input category
2020-04-15 02:52:12 +10:00
itsmattkc
cb6c054b8d
trigonometrynode: implemented trigonometry node
2020-04-15 02:41:20 +10:00
itsmattkc
c09d83291e
nodeparamviewwidgetbridge: empty combobox entries are separators
2020-04-15 02:41:05 +10:00
itsmattkc
c761403ba4
mathnode: override texture x matrix op
2020-04-15 02:07:48 +10:00
itsmattkc
a0a7d106dc
mathnode: implemented add/subtract/multiply/divide/power functions
...
Includes implementing combobox UI for the NodeParamViewWidgetBridge.
2020-04-15 01:52:24 +10:00
itsmattkc
fd1ecfae6f
audio: removed hardcoded stereo value
...
Fixes bug that caused AudioMonitor to only show two channels regardless of the
actual number of channels being mixed.
2020-04-14 23:55:28 +10:00
itsmattkc
2646d424d8
sequence: fixed broken detection of audio channel layouts when setting params from footage
2020-04-14 23:49:48 +10:00
itsmattkc
9f7a9d85b4
ffmpegdecoder: fixed deadlock on non-video streams
2020-04-14 23:42:31 +10:00
itsmattkc
6046b1e892
timeline: fixed bug that prevented clips from being dragged to lower tracks
2020-04-14 23:36:59 +10:00
itsmattkc
d8df104c35
keyframeviewbase: for one-dimensional views, if multiple keys are at the same time, select all of them
2020-04-14 23:26:59 +10:00
itsmattkc
e5ac9d48a6
mathnode: added path for math between a texture and a matrix
2020-04-14 23:07:00 +10:00
itsmattkc
a2f954a0a7
memorypool: implemented arenas
...
A pool can allocate/destroy any amount of arenas during runtime, meaning it
won't run out of memory but we still get the advantages of one large allocation
as opposed to hundreds of small allocations.
2020-04-14 16:23:45 +10:00
itsmattkc
feceef0d62
ffmpegdecoder: impose limit on memory frame cache
2020-04-14 15:16:38 +10:00
itsmattkc
9cc343bf13
ffmpegdecoder: share framepool with all instances
...
We can conserve memory by sharing our frame pool amongst instances of the same
stream.
2020-04-14 14:51:31 +10:00
itsmattkc
b3bebeeef3
decoder: removed unused destructor
...
Very old unused code.
2020-04-14 14:51:15 +10:00
itsmattkc
9a25064b00
memorypool: placed mutex around get and release functions
...
Makes all memory pool derivatives effectively thread-safe.
2020-04-14 14:50:37 +10:00
itsmattkc
873f58d057
Merge branch 'decoder-ffpool'
2020-04-14 02:45:38 +10:00
itsmattkc
7bfdf8af7c
ffmpegframepool: implemented functional frame pool
...
Includes splitting off core functionality to a base MemoryPool class that can
be re-used later if necessary.
2020-04-14 02:43:12 +10:00
itsmattkc
2eb03bf386
various: removed constructor.h include
2020-04-14 00:53:25 +10:00
itsmattkc
20b10509fe
travis: revert xcode version
...
Updating the Xcode version appears to have broken rendering on macOS.
2020-04-13 23:45:16 +10:00
itsmattkc
6bb972b4db
decoder: began implementation of a frame pool
2020-04-13 23:44:42 +10:00
itsmattkc
5c927ce7a4
core: merged define and constructor headers
2020-04-13 23:44:18 +10:00
itsmattkc
f80a82459b
ffmpegdecoder: clear cache_at_zero flag if frames are removed
2020-04-13 13:24:30 +10:00
itsmattkc
aac47ba776
viewer: re-queue video renderer even when beyond the length
...
Ensures video renderer always renders where the playhead is.
2020-04-13 13:19:08 +10:00
itsmattkc
cdf5a1058d
ffmpegdecoder: re-use existing frame pool for memory management
2020-04-12 14:12:08 +10:00
itsmattkc
fa16d2169b
videorenderbackend: render sequentially rather than outwards
2020-04-12 02:11:55 +10:00
itsmattkc
4d8af6855f
ffmpegdecoder: made all instances shared
...
Decoders now share instances between them and can interact with other threads
to share resources and continue the work of others.
2020-04-12 01:49:10 +10:00
itsmattkc
e6b47a817c
ffmpegdecoder: separated instance from decoder entity
...
Should allow for different decoders in different threads to share a single
instance.
2020-04-11 17:37:52 +10:00
itsmattkc
a8fbe686e2
openglrenderer: retrieve frame in each worker thread rather than in the proxy thread
...
Since we now have decoders in each thread, we can parallelize by retrieving
frames in each thread as well.
2020-04-11 17:37:00 +10:00
itsmattkc
f08734d18e
index/confirm tasks: these tasks no longer need to open the decoder to perform said tasks
2020-04-11 17:36:16 +10:00
itsmattkc
ce7fa12520
ffmpegdecoder: implemented basic decoder crosstalk
2020-04-11 13:18:44 +10:00
itsmattkc
0c3ce03348
renderer: use a dedicated decoder per thread
2020-04-11 13:18:31 +10:00
itsmattkc
4cb02b6769
core: set config defaults a second time before loading
...
Works around an issue where media cache directories would be set before the
app name is set (which Qt uses to return the local appdata dirs used to
set the cache directories).
2020-04-08 02:03:46 +10:00
itsmattkc
f5a9dee139
exportdialog: added elapsed/remaining time indicator
2020-04-08 01:48:03 +10:00
itsmattkc
7bc7b6098b
ui: moved remaining QMenus to our Menu class
...
Mainly to take advantage of Menu's specific styling on certain platforms to
keep a consistency.
2020-04-08 00:46:30 +10:00
itsmattkc
6d6b2b237e
projectexplorer/mainwindow: close sequence if it's open before deleting it
2020-04-07 03:11:50 +10:00
itsmattkc
cf04cad238
mainwindow/timelinepanel: closing a timeline will close a sequence entirely
...
UI detail.
2020-04-07 03:07:43 +10:00
itsmattkc
9f89f57090
track: when length changes, force the new area to invalidate
...
The track limits cache invalidation signals to the length of the track. On some
platforms, if a block length was changed to the point that it changed the
track length, the track length would change AFTER the cache invalidation and
therefore never end up getting rendered.
This commit ensures that when a track's length changes, the new section is
invalidated regardless of ordering.
2020-04-07 02:34:59 +10:00
itsmattkc
48a1f20ff3
git: ignore "build" folders
2020-04-06 23:40:01 +10:00
itsmattkc
ee5d47a53f
viewer: check if file exists before passing to OIIO
...
This is valid in our system and suppresses OIIO message when files do not exist.
2020-04-06 23:39:19 +10:00
itsmattkc
1b4c241b5b
windows: implemented export progress on taskbar button
2020-04-06 18:13:07 +10:00
itsmattkc
78c592cf8d
audiorenderer: fixed bug where conform signals would send corrupt re-cache time
2020-04-06 17:10:15 +10:00
itsmattkc
4a8a44a8b1
timerange: added debug output functions for the TimeRange and TimeRangeList classes
2020-04-06 17:08:13 +10:00
itsmattkc
8cbac84c96
samplebuffer: added an assert to ensure valid allocations occur
2020-04-06 17:07:38 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
82b6ddccc8
added olive namespace macros
2020-04-06 03:34:11 +10:00
itsmattkc
1c063c5c11
export: began windows taskbar button progress feedback
2020-04-06 03:33:52 +10:00
itsmattkc
59fa80ae57
ui: on windows, use native menus
...
Minor UI improvement for Windows users.
2020-04-06 00:14:36 +10:00
itsmattkc
edc38ad8a2
timeline: implemented adding objects in the timeline (e.g. solid, title)
2020-04-06 00:05:09 +10:00
itsmattkc
0acad08887
timeline: unlink clip if it is completely overwritten
2020-04-05 23:19:55 +10:00
itsmattkc
5e66508f3c
curveview: color code keyframe tracks when more than one is present
2020-04-05 23:15:47 +10:00
itsmattkc
9133bbe632
curveview: implemented keyframe tracks
...
I'm not sure why this wasn't implemented before, but as a pretty integral part
of the keyframe system, now it is.
2020-04-05 20:19:46 +10:00
itsmattkc
6ea52e4123
audio renderer/timeline: pass through channel count of waveform visualizations
2020-04-05 19:59:14 +10:00
itsmattkc
56178648bd
timelinepoints: implemented saving/loading into project files
2020-04-05 19:21:17 +10:00
itsmattkc
e3a8d32e4a
audiorenderer: fill destination buffer with zeroes before copying samples over
...
Ensures no uninitialized values end up in the audio cache.
2020-04-05 13:29:04 +10:00
itsmattkc
5b48c1ceb0
travis: try newer xcode sdk for better mojave+ support
2020-04-05 11:41:19 +10:00
itsmattkc
92da0c220d
exporter: wait for conforms/indexes when exporting audio
...
The audio rendering system uses an event-based mechanism where if audio needs
to be converted (i.e. to a different sample rate), it will create a conform
task and re-render that section again when the audio is ready. Unfortunately,
the export code didn't respect this and would start encoding audio once the
initial queue was done. This usually resulted in silent audio, but could also
result in "uninitialized" audio that would crash any float-based encoders
(e.g. AAC). Now we use a different signal that only emits once the queue is done
AND all conforms are done.
2020-04-05 00:13:26 +11:00
itsmattkc
fb1cf1edaf
ffmpegencoder: improvements to resampling
...
Updates the AVFrame's nb_samples field to the amount of samples retrieved from
swresample so it doesn't encode more or less samples than it has.
2020-04-05 00:12:23 +11:00
itsmattkc
626c50477c
renderer: set null value on shader if no value was found in the table
2020-04-04 19:28:38 +11:00
itsmattkc
c4b11c7bd1
nodevalue: return a null qvariant instead of 0 if there is no matching value in the table
2020-04-04 19:04:44 +11:00
itsmattkc
c82ca3c716
audiorenderer: don't memcpy if the copy length is zero
2020-04-04 17:25:31 +11:00
itsmattkc
615e227f9a
renderer: convert footage frames to reference pixel format
...
Due to an oversight, incoming footage frames were NOT converted to the
working pixel format (usually half or float). For most frames, this meant the
OCIO conversion would occur on frames while they were still in their source
format (usually either RGB8 or RGB16). This leads to rounding error
inaccuracies, but even worse GLSL will clamp integer textures to 1.0 potentially
losing a lot of data.
While later nodes would correctly convert to the appropriate format, by then it
would be too late. This commit corrects this issue, converting the frames to
float during the OCIO shader pass.
2020-04-04 14:15:18 +11:00
itsmattkc
55c86f6cb6
viewer: removed framebuffer that never got used
...
This framebuffer was an early approach to the pixel sampler that never got
used, but was still getting created/destroyed unnecessarily. This has now
been removed.
2020-04-04 14:11:16 +11:00
itsmattkc
b2090c113c
videorenderingparams: added divider to constructor that doesn't have mode or timebase
2020-04-04 14:09:46 +11:00
itsmattkc
3ba31f9d5f
openglframebuffer: fixed erroneous error message
2020-04-04 14:09:24 +11:00
itsmattkc
d5581f0772
preferencesdisktab: when browsing for a disk cache path, start in the currently set dir
2020-04-04 14:09:00 +11:00
itsmattkc
dfb00d9f15
pixelformat: added convenience function for whether a format is float or not
2020-04-04 13:46:12 +11:00