Commit Graph
360 Commits
Author SHA1 Message Date
Peter Eszlari 2c8ebdf0d2 ocioconf: replace script with cmake 2020-05-04 04:35:32 +02:00
itsmattkc b458bfa542 proxy: improved UI on proxy menu 2020-05-04 01:33:26 +10:00
itsmattkc 2b1640ac04 frame/texture: use dividers when allocating buffers
Allows render pipeline to know the "real" and "simulated" resolution of a
divided buffer.
2020-05-04 01:08:46 +10:00
itsmattkc e4e797c901 proxy: cleaned up, re-use the render cache's disk save system for proxies, multithreaded compression 2020-05-04 00:29:26 +10:00
itsmattkc 6754feb2f6 proxy: began work towards creating proxy from video 2020-05-03 17:09:52 +10:00
itsmattkc e4c3b6bf7b renderer/decoder: simplified audio PCM transcode
Turned the two-step PCM transcode into one step and simplified/removed much of
the unnecessary infrastructure that supported it. This makes the code cleaner
and generally improves the code paths.
2020-05-03 16:07:10 +10:00
itsmattkc 403a8a8656 ocio: change lut edge size to 64 instead of 32
Doesn't "solve" the white inaccuracy issue, but does mitigate it somewhat. Also
improves accuracy across the board.
2020-05-03 03:14:38 +10:00
itsmattkc 80acd91d88 created script to auto-generate qt resource file from ocio config 2020-05-03 02:21:52 +10:00
itsmattkc c5458c6843 timeline: use headers in waveform data files rather than sidecar metadata files 2020-05-03 00:44:14 +10:00
itsmattkc 3e57cdac1d use linesize workaround for setting OIIO pixels as well as getting 2020-05-02 22:51:29 +10:00
itsmattkc 4a225aff85 colormanager: show OCIO error if env config failed to load 2020-05-01 17:55:04 +10:00
itsmattkc 4290797389 colormanager: use env variable as default config if it exists 2020-05-01 16:33:46 +10:00
itsmattkc 6f2993477d added null check for audio that hasn't been indexed yet 2020-05-01 03:51:56 +10:00
itsmattkc a2cba8c103 pixelformat: respect linesizes when converting pixel formats 2020-05-01 03:42:31 +10:00
itsmattkc afc9cff301 exporter: fixed segfault when cancelling introduced by multithreaded color space conversion 2020-05-01 00:36:37 +10:00
itsmattkc dc355dca46 export: multithread the color space conversion 2020-04-30 18:54:30 +10:00
itsmattkc aecfa842c3 nodes: moved hashing to nodes so they can override behavior if they wish 2020-04-30 01:56:08 +10:00
itsmattkc 4906bb7d53 scopes: don't use shared context
OpenGL shared contexts (through Qt at least) seem to be buggy. Scopes have been
shifted to a non-shared approach as a result.
2020-04-28 17:08:52 +10:00
itsmattkc ac3f49a845 nodes: moved matrix input on "video input" elsewhere
Rather than plugging a matrix into the video input node, the matrix is now
multiplied by the video input using a math node. This is probably more
sensible from a user perspective.

This also means the renderer is tolerant of texture sizes that are not equal
to the sequence size, however most nodes will downsample the texture to the
sequence size (and if not, it will be downsampled once it is cached). Textures
will still *always* be in reference space and the sequence's format. This seems
like the best compromise between backend and frontend congruity.
2020-04-27 04:11:24 +10:00
itsmattkc 981860b60b fixed audio regression introduced with optimized node copy 2020-04-27 00:55:40 +10:00
itsmattkc 53ae25a7cb nodes: optimize node graph changes by only updating from inputs that changed
A huge optimization that ensures only the parts of a node graph that have
changed get pushed to the renderer. For thread-safety, the node graph is
copied elsewhere so that users can make changes asynchronously and the graph
can update when its threads are ready. Up until now, if an input value changed,
every node's values would be re-copied, or worse, if a connection was changed,
the entire graph would be recopied. This has been negligible in testing since
we've been largely testing with small graphs, but for massive projects, it's
important that this be as optimized as possible.
2020-04-26 04:16:15 +10:00
itsmattkc c7de93cc5d viewer/opengl: minor code improvements 2020-04-24 15:14:20 +10:00
itsmattkc 8c44f8d03d viewer/various: split off color management into separate base class
Also moves scopes to said base class.
2020-04-24 03:45:07 +10:00
itsmattkc 3eb966cb5b openglshader: fixed ocio opengl incompatibility 2020-04-24 00:19:25 +10:00
itsmattkc c4fe5786a3 openglshader: fixed ocio opengl incompatibility 2020-04-23 23:43:29 +10:00
itsmattkc 8d66989de3 Merge branch 'glsl-150' of https://github.com/Simran-B/olive into Simran-B-glsl-150 2020-04-23 22:37:39 +10:00
itsmattkc 48b5d9ca60 openglshader: upload ocio lut immediately 2020-04-23 22:36:05 +10:00
itsmattkc 6940b00164 colormanager: added wrappers for GetDefaultLumaCoefs 2020-04-23 21:39:21 +10:00
itsmattkc 9e04728c12 openglshader: minor code tidiness 2020-04-23 21:20:51 +10:00
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