itsmattkc
6bb972b4db
decoder: began implementation of a frame pool
2020-04-13 23:44:42 +10:00
itsmattkc
5c927ce7a4
core: merged define and constructor headers
2020-04-13 23:44:18 +10:00
itsmattkc
f80a82459b
ffmpegdecoder: clear cache_at_zero flag if frames are removed
2020-04-13 13:24:30 +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
cdf5a1058d
ffmpegdecoder: re-use existing frame pool for memory management
2020-04-12 14:12:08 +10:00
itsmattkc
fa16d2169b
videorenderbackend: render sequentially rather than outwards
2020-04-12 02:11:55 +10:00
itsmattkc
4d8af6855f
ffmpegdecoder: made all instances shared
...
Decoders now share instances between them and can interact with other threads
to share resources and continue the work of others.
2020-04-12 01:49:10 +10:00
itsmattkc
e6b47a817c
ffmpegdecoder: separated instance from decoder entity
...
Should allow for different decoders in different threads to share a single
instance.
2020-04-11 17:37:52 +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
f08734d18e
index/confirm tasks: these tasks no longer need to open the decoder to perform said tasks
2020-04-11 17:36:16 +10:00
itsmattkc
ce7fa12520
ffmpegdecoder: implemented basic decoder crosstalk
2020-04-11 13:18:44 +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
7bc7b6098b
ui: moved remaining QMenus to our Menu class
...
Mainly to take advantage of Menu's specific styling on certain platforms to
keep a consistency.
2020-04-08 00:46:30 +10:00
itsmattkc
48a1f20ff3
git: ignore "build" folders
2020-04-06 23:40:01 +10:00
itsmattkc
ee5d47a53f
viewer: check if file exists before passing to OIIO
...
This is valid in our system and suppresses OIIO message when files do not exist.
2020-04-06 23:39:19 +10:00
itsmattkc
1b4c241b5b
windows: implemented export progress on taskbar button
2020-04-06 18:13:07 +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
4a8a44a8b1
timerange: added debug output functions for the TimeRange and TimeRangeList classes
2020-04-06 17:08:13 +10:00
itsmattkc
8cbac84c96
samplebuffer: added an assert to ensure valid allocations occur
2020-04-06 17:07:38 +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
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
5b48c1ceb0
travis: try newer xcode sdk for better mojave+ support
2020-04-05 11:41:19 +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