Commit Graph
1202 Commits
Author SHA1 Message Date
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 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
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 f8d9404cc9 colorspacechooser: ensure a (none) option is available 2020-04-04 12:24:03 +11:00
itsmattkc 98e5b175e9 colordialog: various improvements that should ultimately be near completion 2020-04-04 04:22:55 +11:00
itsmattkc 730b94c471 colorspacechooser: implemented setting input color space 2020-04-04 04:21:48 +11:00
itsmattkc ae6c7174c3 core: declare Color as a Qt metatype 2020-04-04 04:21:28 +11:00
itsmattkc a21e7b1e77 nodeinput: implemented color
Implements converting color to and from string, keyframing color, and
conversion between the class and its keyframe tracks.
2020-04-04 04:19:24 +11:00
itsmattkc f1423c169c nodeparam: move ValueToBytes color from QColor to our new Color class 2020-04-04 04:18:43 +11:00
itsmattkc 30be89ac2d color: QDebug implementation
Makes debugging color values easier.
2020-04-04 04:18:06 +11:00
itsmattkc 87b8713b5e colorbutton: implemented management for the color that this button displays 2020-04-04 04:17:34 +11:00
itsmattkc 0801488c89 nodeparamviewwidgetbridge: implemented setting and receiving color 2020-04-04 04:16:49 +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 0752b75682 mathnode: disable method keyframing and connecting
There's probably no situation where these would need keyframing/connecting.
2020-04-04 04:12:16 +11:00
itsmattkc c9c9bd5174 metareader: use NodeInput's StringToValue/ValueToString when reading default values from XML 2020-04-04 04:11:20 +11:00
itsmattkc c538f2a421 solid: fixed erroneous shader reference in XML file 2020-04-04 03:47:34 +11:00
itsmattkc 11f962d6b3 media nodes: moved video/audioinput category to media base
They both have the same category, so they can share the same code in their base.
2020-04-03 23:28:03 +11:00
itsmattkc 3dd91a1429 timenode: implemented timenode to allow values to be connected to time 2020-04-03 23:27:38 +11:00
itsmattkc 378c354277 nodeview: improved nodeview usage
Rather than the cumbersome and small "node connectors" (introduced a while ago
when nodes had more than one output), this is a more streamlined system of
connecting nodes (hold Ctrl and drag to connect)
2020-04-03 08:34:47 +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
itsmattkc bfbb2e3fef msvc: fixed compile/syntax error that only seems to occur in msvc 2020-04-02 13:09:21 +11:00
itsmattkc 03c9c708f0 Merge branch 'master' of https://github.com/olive-editor/olive 2020-04-02 13:02:53 +11:00
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 3bec108fee Merge branch 'master' into colorpicker 2020-04-01 19:30:24 +11:00
itsmattkc 920a0a27a7 menu: set keyboard shortcuts to application-wide so they continue to work in
viewerwindows
2020-04-01 19:29:41 +11:00