Commit Graph
3066 Commits
Author SHA1 Message Date
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
itsmattkc 1319d7141f viewer: re-implemented auto viewer full screen from menubar/keyboard shortcut 2020-04-01 19:22:53 +11:00
itsmattkc ed48d24cbc viewerwindow: implemented displaying a viewer image fullscreen on another monitor
Implements an extra widget to display images on a separate monitor. Both
viewers have separate display color controls since different monitors may
conform to different standards/transforms.
2020-04-01 19:21:25 +11:00
itsmattkc bcc8eaee55 colordialog: began widgets and dialogs for a managed color picker 2020-04-01 17:57:19 +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 76f260cb3a timeline: added ability to move clips by sample in addition to by frame 2020-04-01 13:55:19 +11:00
itsmattkc 061f7ac20d mainwindow: show active project filename in the titlebar 2020-04-01 13:19:18 +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 154f6c5666 projectviewmodel: fixed segfault when dragging sequence in project 2020-04-01 05:18:37 +11:00
itsmattkc 4aad73a21d samplebuffer: use delete [] instead of delete for sample buffers 2020-04-01 05:17:45 +11:00
itsmattkc 922e11a23d frame: refuse to allocate if the video params are invalid 2020-04-01 05:17:24 +11:00
itsmattkc 59d32f60ad core: use SAMPLE_FMT_FLT only
There's no real reason not to use float for audio. It's light on system
resources (compared to everything else we're doing at least) and the code
becomes simpler when we can assume all audio will be -1 to 1 rather than 0 to
255 or -32768 to 32767.

The only thing we might want to do one day is move up to SAMPLE_FMT_DBL, but
this should only take some mild refactoring and all our assumptions (i.e. -1 to
1 range, etc.) can remain the same.
2020-03-31 18:07:25 +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 be6bea234b exportdialog: make integer slider for crf smaller
Using QSizePolicys seemed to always produce some variant of the IntegerSlider
and QSlider consuming roughly half of the width each. The IntegerSlider is only
two characters wide at any one time so this results in a lot of wasted screen
real estate. This commit limits the integer slider to 4 characters wide (more
than 2 to allow for UI padding)
2020-03-31 12:41:08 +11:00
itsmattkc af0d85f0cc exportdialog: added filename validation
Ensures filenames end with the appropriate extension (necessary for
communicating the output format to both FFmpeg and OIIO) and moves overwrite
check from file dialog to render since it's still possible to type the
intended filename. Also checks the intended output directory and creates it
if it doesn't already exist.
2020-03-31 12:23:47 +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 7328a813f9 ffmpegencoder: fixed bug that failed to flush the audio encoder
For some reason, when the encoder closed it only flushed the video encoder and
not the audio encoder. Now it does both.
2020-03-31 12:09:43 +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 a855dea8de timeline/project: block serializations to and from xml now include links
Fixes issue where blocks would become unlinked after copy/paste or save/load.
2020-03-31 02:38:14 +11:00
itsmattkc 53955e9632 timeline: fixed array index out of bounds bug 2020-03-31 02:23:00 +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 67d8ad571d timeline: remove blocks from timeline if a place command has overwritten them 2020-03-30 18:06:02 +11:00
itsmattkc 6624f14517 timeline: temporarily disable optimization that doesn't re-cache after split
Since waveforms are generated during the cache process, if clips don't cache,
a waveform isn't generated for them. Therefore for now, this optimization will
be disabled but should be re-enabled later when waveforms are improved to handle
this situation.
2020-03-30 15:14:06 +11:00
itsmattkc 5aa4f91c46 timelineviewblockitem: fixed some indentation
Minor code tidiness.
2020-03-30 15:13:17 +11:00
itsmattkc a143b64ac7 block: don't send cache invalidation signals from length changes
Minor optimization.
2020-03-30 15:11:32 +11:00
itsmattkc 27412baa57 Merge branch 'master' into mathnode 2020-03-30 01:27:22 +11:00
itsmattkc 2bfe9f44df nodeview: added ctrl+scroll zooming 2020-03-30 01:27:10 +11:00