itsmattkc
61e3641bcc
export: fixed bug where null frames never got signalled and hung exporting
2020-04-23 03:02:04 +10:00
itsmattkc
fef29db754
export: fixed bug that failed to export video if using a different export resolution
2020-04-23 02:00:49 +10:00
itsmattkc
5c736114d0
merged some export improvements from another branch
2020-04-23 01:31:50 +10:00
itsmattkc
6c1e90665f
colormanagement: moved from passing DVL strings everywhere to a consolidated ColorTransform struct
2020-04-23 01:17:58 +10:00
itsmattkc
361a986b79
renderer: added path for generating resized frames from textures
2020-04-22 22:58:00 +10:00
Simran Brucherseifer
5da9848de7
Upgrade shaders from GLSL 110 to 150 (OpenGL 3.2)
2020-04-22 11:28:33 +02:00
itsmattkc
c9e797abdf
various: conformed frame usages to respect stride
2020-04-22 15:54:47 +10:00
itsmattkc
0a9ad8f235
opengltexture: implemented linesize fields whenever uploading data to a texture
2020-04-22 15:23:29 +10:00
itsmattkc
c8da59a45e
opengltexture: align all data to 16
...
Fixes crash if frame is not aligned to 16. This should probably
be folded into the Frame class itself at some point.
2020-04-22 15:08:36 +10:00
itsmattkc
1d7c29c6d8
colormanager: minor comment update
...
More explicitly explains what's happening.
2020-04-22 14:55:40 +10:00
itsmattkc
bf787b1d2f
projectproperties: updated to assume empty config is default config
2020-04-22 14:04:10 +10:00
itsmattkc
8272f482d9
colormanager: temporarily hardcoding default input color space
...
The first input color space is "linear" which is very rare for footage to be
in. For simplicity, it'll default to sRGB for now.
2020-04-22 13:44:18 +10:00
itsmattkc
d15b08c181
sampleformat: fixed erroneous constant
2020-04-22 13:10:48 +10:00
itsmattkc
ccb02d30aa
colormanager: implement default config
2020-04-22 05:08:33 +10:00
itsmattkc
afa3d3babe
audiomonitor: rewrote to handle audio independently of output
...
This gives the AudioMonitor more control over its own timing and appearance
and also reduces the load on the audio processing threads.
2020-04-22 01:09:49 +10:00
itsmattkc
38fcad6a3f
cache: fixed signalling issue where changing default input didn't update the cache
2020-04-21 23:48:26 +10:00
itsmattkc
05eae1e28a
audio: don't use a shared QIODevice
...
This system was kind of janky anyway. It makes more sense ultimately for the
audio management classes to contain the file handle rather than the renderer.
2020-04-21 17:55:55 +10:00
itsmattkc
0ced48d4df
histogram: implemented color management
2020-04-21 01:59:06 +10:00
itsmattkc
1c3c8cd9b2
began work on headless export path
2020-04-20 02:37:10 +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
d8e0a31375
color: when converting to a QColor for UI, clamp to 0.0-1.0
2020-04-17 01:17:14 +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
32969d2403
colordialog: updated to show input/reference/display values
2020-04-15 18:11:46 +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
2eb03bf386
various: removed constructor.h include
2020-04-14 00:53:25 +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
fa16d2169b
videorenderbackend: render sequentially rather than outwards
2020-04-12 02:11:55 +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
0c3ce03348
renderer: use a dedicated decoder per thread
2020-04-11 13:18:31 +10:00
itsmattkc
f5a9dee139
exportdialog: added elapsed/remaining time indicator
2020-04-08 01:48:03 +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
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
6ea52e4123
audio renderer/timeline: pass through channel count of waveform visualizations
2020-04-05 19:59:14 +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
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
626c50477c
renderer: set null value on shader if no value was found in the table
2020-04-04 19:28:38 +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
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
dfb00d9f15
pixelformat: added convenience function for whether a format is float or not
2020-04-04 13:46:12 +11:00
itsmattkc
666bd64943
pixelformat: fixed regression that broke pixel format conversion
...
Affected all exports.
2020-04-04 12:45:14 +11:00
itsmattkc
07d1123978
renderer: disassociate requires float as well, so we may as well do the version before
2020-04-04 12:24:36 +11:00
itsmattkc
30be89ac2d
color: QDebug implementation
...
Makes debugging color values easier.
2020-04-04 04:18:06 +11:00
itsmattkc
ce88da80ef
openglproxy: for shader inputs, use our new Color class instead of QColor
2020-04-04 04:15:57 +11:00
itsmattkc
e1ca5f2f82
various: removed hardcoded OCIO::ROLE_SCENE_LINEAR to allow for a configurable reference space
2020-04-03 01:30:47 +11:00
itsmattkc
552163320c
colorpicker: implemented color management
...
Also moves some items to ColorManager from Project for better accessibility and
re-uses some widgets in ExportDialog for improved code.
2020-04-03 01:23:08 +11:00
itsmattkc
4d0b8f18e2
colordialog/picker/wheel: finished color picker UI
...
Dialog is still unmanaged, but that's the only remaining step.
2020-04-02 19:26:30 +11:00
itsmattkc
a2ed1035da
Merge branch 'master' into colorpicker
2020-04-02 15:30:55 +11:00