itsmattkc
f3290003be
colordialog/wheel/gradient: implemented basic UI components for color picking
2020-04-02 13:02:30 +11:00
itsmattkc
5e609882d8
color: fixed oiio incompatibility
...
While developing, we used a function that only exists in OpenImageIO 2.1.x+.
Fortunately however, it seems to have simply existed with a different name in
earlier versions so we can maintain compatibility with 1.6+.
2020-04-02 12:47:05 +11:00
itsmattkc
6ea6dd810e
pixelsampler: added pixel sampler panel
...
When visible, this panel will show the current reference and display transformed
color under the cursor of any viewer.
2020-04-01 16:57:10 +11:00
itsmattkc
1363d2b94c
mathnode: expanded math node
...
Implemented handling of various different types.
2020-04-01 05:21:50 +11:00
itsmattkc
74e36bc99d
audiorenderworker: fixed segfault in audiorenderworker
...
Switches memset/memcpy pointers to a char* pointer specifically to work on the
byte level rather than the float* level.
2020-04-01 05:20:56 +11:00
itsmattkc
b562a84e00
videorenderparams: don't consider a null timebase invalid
...
Not all items that use VideoRenderParams need a timebase much like they don't
all need a render mode.
2020-04-01 05:19:04 +11:00
itsmattkc
6f0d72c05d
renderer: switched audio rendering over to planar buffers
...
While planar audio cannot be used for playback, it's much easier for processing.
This should lead to cleaner and easier to write code in the future.
2020-03-31 18:01:20 +11:00
itsmattkc
8413886c17
audiobackend: fixed bug that sometimes extended the
...
While we implement an audio cache "truncate" function when the sequence length
changes, the render functions also have the ability to extend it. This is fine,
but if truncation happened while workers were caching, it could truncate and
then extend beyond the length of the sequence. This commit changes the worker
extend function to only extend as much as the length, therefore not undoing the
truncation.
2020-03-31 13:56:02 +11:00
itsmattkc
9603f90072
ffmpegencoder: added range support to audio encoding
...
There isn't UI for this yet, but sending a time range to the encoder will now
encode just that range of audio.
2020-03-31 13:55:57 +11:00
itsmattkc
51c834f375
exporter: start debug timer before EncodeFrame() call
...
Minor code path improvement. Since EncodeFrame() will try to stop the debug
timer if the encode is finished, it doesn't make sense to always start it
unconditionally after calling EncodeFrame().
2020-03-31 12:10:45 +11:00
itsmattkc
26d02e82ad
exporter: fixed double-free
2020-03-31 11:50:23 +11:00
itsmattkc
18c36155d7
Merge branch 'master' into mathnode
2020-03-31 02:39:46 +11:00
itsmattkc
2bda306866
timeline/various: implemented block copy/paste
...
Implemented the ability to copy/paste blocks/clips in the timeline. This did
require some large scale changes and reworking of the copy/paste system
introduced a few commits ago, but should be largely functional now.
2020-03-31 02:19:05 +11:00
itsmattkc
7100d00060
nodes: made changes to the node system to allow for context sensitive shader code
...
Primarily implemented for the math node so a new shader can be generated and
compiled based on what inputs the node is receiving.
2020-03-29 03:11:30 +11:00
itsmattkc
f9fc27c6eb
renderer: invalid cache when viewer node changes
...
Ensures frames get re-rendered rather than stuck on the previous viewer node.
2020-03-22 20:03:14 +11:00
itsmattkc
bbb00029e9
Merge branch 'master' of https://github.com/olive-editor/olive
2020-03-19 12:22:10 +11:00
itsmattkc
e5ac72fa9d
Merge branch 'master' into typos
2020-03-19 12:16:09 +11:00
itsmattkc
7771bab5a0
audiobackend: truncate PCM cache size when the length is reduced
2020-03-18 19:08:18 +11:00
itsmattkc
79bc9594b9
audiorenderer: clear tasks waiting for conforms when their ranges are invalidated
...
Minor code optimization.
2020-03-18 15:49:29 +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
78baf7661f
audiorenderer: split audio rendering up into chunks for better parallelism
2020-03-14 23:27:41 +11:00
itsmattkc
7f2dcc8200
waveformview: made UI seekable
2020-03-14 01:57:40 +11:00
itsmattkc
2ac6b601bf
renderer: fixed segfault when no texture is generated
2020-03-13 17:03:27 +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
luz.paz
321e7d1606
Fix doxygen and misc. typos
...
Found via `codespell -q 3 -L ba,keypair,numer,uint`
2020-03-10 15:00:56 -04: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
f2d6d3b32c
timeline/renderer: automatically update timeline view when a visual waveform
...
has updated
2020-03-07 02:44:15 +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
c75a0e8498
timeline/renderer: implemented basic waveform display support
2020-03-06 16:18:07 +11:00
itsmattkc
0f5cd40c45
exporter: add ability to cancel exports (including a confirm to cancel if the
...
user closes the dialog mid-export)
2020-03-03 02:37:18 +11:00
itsmattkc
644dd2df30
renderer: fixed bug that would hang exports after 1 x (cores) frames
...
were exported
2020-03-03 01:49:37 +11:00
itsmattkc
8825ff9953
exporter: print extra debugging information
...
Should be helpful for debugging any potential export hangs if there
are any in the future.
2020-03-03 01:48:38 +11:00
itsmattkc
c44c73e376
renderer: handle null frame
...
Minor reliability improvement.
2020-03-02 14:42:20 +11:00
itsmattkc
163ad76456
renderer: rewrote frame compression algorithm
...
This function was noticeably lagging the main thread while caching. The
cause was OpenEXR's internal thread pool competing with our main
thread. Since we have our own system of worker threads, its thread pool
was unnecessary for caching, however for normal playback it was a useful
optimization. Unfortunately OIIO (which we were using to save EXRs)
didn't provide quite enough control over OpenEXR's threading behavior
(only providing control for over the global thread pool and not on
a per-image basis), so for caching we've switched to using OpenEXR
directly. This has noticeably sped up the main thread while causing no
noticeable slowdown to the caching process.
2020-02-29 01:00:17 +11:00
itsmattkc
15ac7f0e9d
renderer: removed old signal that isn't used anymore
2020-02-28 15:49:02 +11:00
itsmattkc
f9a54ebdb6
renderer: remove frames from hash map as well when the diskmanager deletes
...
them
2020-02-27 17:46:49 +11:00
itsmattkc
735e180d5a
pixelservice: use more widely supported OIIO function in image buffer
...
conversions
2020-02-27 17:19:59 +11:00
itsmattkc
273522f28a
diskmanager: don't fail disk cache clear if the files simply don't exist
...
QFile::remove() will return false if the file doesn't exist, but
for our purposes that's as good as the file having been deleted.
2020-02-27 17:19:07 +11:00
itsmattkc
a64f066e2e
renderer: don't upconvert to RGBA if the source image is only RGB
2020-02-27 17:18:39 +11:00
itsmattkc
a0f37ef827
pixelformat: added missing <memory> include for non-windows systems
2020-02-27 15:49:15 +11:00
itsmattkc
d87b4fde8c
renderer/decoder: use divider at the footage level
...
Optimizes rendering if a divider is being used.
2020-02-27 15:47:08 +11:00
itsmattkc
02ce48d0c6
various: pixel optimizations
...
Several things are accomplished in this commit, including:
- Use OIIO instead of our own functions for pixel format conversions
(cleaner code/less for us to maintain)
- Fold all PixelService functions into the PixelFormat class
(cleaner code)
- Moved OpenGL pixel definitions to OpenGL classes and out of the
global classes.
- Add support for RGB buffers as well as RGBA (optimization)
2020-02-27 13:54:38 +11:00
itsmattkc
9585786c4b
exporter: removed unused and problematic function
...
This array this code made was never actually used and in fact the code was
potentially crash-prone.
2020-02-26 14:07:47 +11:00
itsmattkc
78daf9e28a
exporter: updated exporter to function with new render system
2020-02-25 20:03:15 +11:00
itsmattkc
faffbb0f38
renderer: re-use already created textures if the images are known not to change
2020-02-25 14:57:49 +11:00
itsmattkc
9f17a23a42
videorenderframecache: use hash-prefix directory structure
...
Many file systems become inefficient with a lot of files in the same directory.
To solve this we use a semi-arbitrary system to split up all cache files into
several folders to keep things performant.
2020-02-24 12:34:16 +11:00
itsmattkc
2c16bb7c53
renderworker: removed unnecessary declaration
2020-02-24 11:58:38 +11:00
itsmattkc
fceb1e8d3e
viewer: re-render both video and audio if parameters change
2020-02-24 11:57:39 +11:00
itsmattkc
08ed766771
audiorenderworker: fixed potential false positive in assert
2020-02-24 02:02:08 +11:00
itsmattkc
ff516b6202
audiorenderworker: added assert for problematic audio behavior that could
...
corrupt the heap
2020-02-23 22:20:01 +11:00