itsmattkc
520b8b46fa
place timecode conversion functions into a Timecode class rather than an olive namespace
...
Code cleanup and improvement.
2019-12-26 17:20:58 +11:00
itsmattkc
3b2fcf4aae
re-implement value setting for all other types than float in NodeParamViewWidgetBridge
...
Just updating code
2019-12-26 17:20:30 +11:00
itsmattkc
23001386d0
implemented base UI keyframe functionality
...
This commit implements much of the base functionality for creating and
destroying keyframes in the UI. Not complete yet, but getting there.
2019-12-26 16:32:08 +11:00
itsmattkc
a514265fc9
updated NodeKeyframe class to QObject for easier signal/slot handling
...
While the keyframes themselves are relatively simple, their usage is quite
complex and using QObjects as their base will help a ton of UI and backend
functionality.
2019-12-26 16:30:25 +11:00
itsmattkc
c62b59965e
updated nodes for new input structure
...
Since all NodeInputs will generally only need their data type and default
value set once, we place it all into the constructor for cleaner and easier
to manage code.
2019-12-26 16:29:56 +11:00
itsmattkc
97c192672e
constructed keyframeview and timeruler together inside nodeparamview and connected them
2019-12-25 02:42:07 +11:00
itsmattkc
d705a27d54
moved more functions to the base class in the vein of the previous commit
2019-12-25 02:41:40 +11:00
itsmattkc
4b48a73db3
moved some timelineview functions into a timelineviewbase for reusing
...
Later classes will feature similar functionality to the TimelineView, moving
them to a base class that can be easily reused seems like a good idea.
2019-12-25 02:20:23 +11:00
itsmattkc
dc6d498da8
began UI for keyframing
...
Largely extending the existing NodeParamView with functionality from the
previous release.
2019-12-25 01:20:46 +11:00
itsmattkc
aac8c5ec17
fixed speed changes on reversed clips in the speeddialog
2019-12-24 16:35:40 +11:00
itsmattkc
ac9690c5a7
ensure gcc will compile this file without warnings
2019-12-24 16:35:28 +11:00
itsmattkc
62f9e55609
implemented foundational reversed block code
...
Ensured renderers can handle clips that are reversed.
2019-12-24 16:17:33 +11:00
itsmattkc
f0cd480540
finished audio effects support in audio renderer
...
Working structure implemented in previous commit into the audio renderer is
complete in this commit.
2019-12-24 14:02:07 +11:00
itsmattkc
7ad2eae7a2
implemented volume and pan effects
...
This commit implements a structure for sample processing and two implemenations
of this structure in volume and pan effects.
2019-12-24 12:34:30 +11:00
itsmattkc
3a7b3ffac6
implemented audio exporting
...
The encoder was moved to its own thread and will transcode the PCM from the
audio renderer into the chosen codec while the video frames are still
received. The implementation isn't perfect and could use some cleaning up, but
it is functional at the moment.
2019-12-23 01:45:27 +11:00
itsmattkc
a8beae64ae
general improvements to the renderer backend to help keep rendering consistent and performant
2019-12-22 03:04:34 +11:00
itsmattkc
46855adea7
use a system of deferred maps to keep track of frames that don't need to be rendered twice
...
Mostly used for exporting to ensure all frames get accounted for when being
sent from the renderer to the exporter through signals/slots.
2019-12-22 03:03:08 +11:00
itsmattkc
8514590c83
implement transformation matrix in exporter backend
...
This was supposed to have been done, but was not.
2019-12-22 02:59:08 +11:00
itsmattkc
1e278b7b7e
share videorenderingparams in exportdialog and include a frame rate for rendering
2019-12-22 02:58:36 +11:00
itsmattkc
b24e2cd22b
enable multithreading on ffmpegencoder
2019-12-22 02:56:25 +11:00
itsmattkc
4cb6659dbb
cleaned up texture and texture reading classes
2019-12-21 21:30:42 +11:00
itsmattkc
a8a5e50d3a
update opengl exporter to pass encoderptr along to exporter base class
2019-12-21 20:40:09 +11:00
itsmattkc
04d39e27a8
copy texture before signalling it
...
Sending a texture directly from the texture cache is dangerous since once the
reference is relinquished, it could be picked up and used by another thread.
Copying the texture to a separate one takes a little extra time but lets the
viewer remain in control of that texture.
2019-12-21 20:38:15 +11:00
itsmattkc
57c0b93ba5
updated more classes for the moved decoder code a few commits back
2019-12-21 20:17:30 +11:00
itsmattkc
62d4603c76
allow access to the current frame rate from the ExportVideoTab to the ExportDialog
2019-12-21 20:14:52 +11:00
itsmattkc
ea1cd81a13
implemented signals for the export window's view/look changing
...
These were implemented for the display combobox correctly but not for the
view/look comboboxes.
2019-12-21 20:13:46 +11:00
itsmattkc
eaedd23c83
set up encoder when setting up the exporter
2019-12-21 20:13:22 +11:00
itsmattkc
355baa893a
cleaned opengl texture and framebuffer code
...
Minor code changes and improvements.
2019-12-21 20:08:20 +11:00
itsmattkc
401de26733
updated other classes for the previous commit's file moving
2019-12-21 20:07:14 +11:00
itsmattkc
f93c20819b
fixed incorrect algorithm in pixel converter
2019-12-21 20:04:44 +11:00
itsmattkc
ee31da9e71
merged encoder and decoder code into one folder since they can share quite a bit of code
2019-12-21 20:03:25 +11:00
itsmattkc
15e01c9452
update export dialog to use higher quality parameters
...
Since the backend parameters were hardcoded not too long ago, for testing the
parameters had to equal the backend parameters. Now that they are not hardcoded
we can use higher quality parameters in export contexts.
2019-12-20 04:41:26 +11:00
itsmattkc
1b844fb760
further progress on export dialog
...
Implemented setting up and running the export thread with valid parameters,
transformation matrix and color processor.
2019-12-20 04:39:11 +11:00
itsmattkc
38d35d1b88
updated viewer to set render backend format/mode
...
Yes, it's still hardcoded in the viewer for the time being, but moving it out
of the backend makes the backend format flexible for exporting.
2019-12-20 04:38:19 +11:00
itsmattkc
8ace197d66
improved backend encapsulation
...
Various backend improvements are included in this commit, mostly for the
benefit of exporting. These include:
- Moving more non-GL code from OpenGL derivatives into base classes
- An "export mode" that changes the cache behavior of video backends
- Using the Viewer's UUID introduced a few commits ago
- No longer hardcoding the pixel format/render mode in the backend (since
they'll inevitably differ when exporting vs previewing)
- Improved signalling for frames that are completed
2019-12-20 04:35:31 +11:00
itsmattkc
757aaa21c4
began exporter classes for handling render backends in an exporting context
2019-12-20 04:34:32 +11:00
itsmattkc
7844a2ed72
fixed race condition in appending to a list of exported cache references
2019-12-20 04:33:05 +11:00
itsmattkc
7a7d304268
use uuid for identifying viewers
...
To aid generating a cache ID, each viewer node needs a UUID. Previous iterations
tried to hash a name and time, but a UUID is a much more efficient way to do
this.
2019-12-20 04:32:17 +11:00
itsmattkc
7398cd3f1c
use viewer resolution/transform override to show cropping/stretching settings
2019-12-19 15:59:51 +11:00
itsmattkc
0ef00245ad
added functions to override the resolution and matrix transform of the viewer widget
...
While in most circumstances these shouldn't be used, they're useful for
showing things like export previews
2019-12-19 15:55:08 +11:00
itsmattkc
c5e16ed805
only show export dialog if the sequence is not empty
2019-12-19 15:53:56 +11:00
itsmattkc
b308f753b3
with Block::set_length_and_* functions, keep the speeds correct
...
With differently set speeds, these functions would mess with the timing in ways
that would be confusing to the user. Now they act in a much more intuitive way
and also prevent negative media times.
2019-12-19 02:26:30 +11:00
itsmattkc
0d51f606df
corrected sequence to media time formulas
...
Previous iteration would multiply the media in by the speed as well. This is
undesirable.
2019-12-19 02:04:53 +11:00
itsmattkc
93d95a0e14
removed legacy OLIVE_EFFECTS define in CMakeLists
...
These shaders are now embedded in the binary via resources.
2019-12-19 01:46:23 +11:00
itsmattkc
63086bc18d
improved msvc warning compliance
2019-12-19 01:44:49 +11:00
itsmattkc
05e10962f9
added convenience undo command for removing a node and its exclusive deps
2019-12-19 01:44:18 +11:00
itsmattkc
3fb7b40b61
fixed bug that would sometimes cause the track lengths to return 0
2019-12-19 01:43:10 +11:00
itsmattkc
4214b061e1
improved MSVC compile flags in app's CMakeLists
2019-12-19 01:41:10 +11:00
itsmattkc
2c79edeb0f
further improved msvc compilability
2019-12-18 23:35:02 +11:00
itsmattkc
37313bc212
only connect footage stream colorspace signal to video/image streams
2019-12-18 22:38:52 +11:00