itsmattkc
f3f81eb2be
ffmpeg: store divided frames in memory cache
...
Since users will most likely be working with a divider most of the time,
there's no reason to waste memory space with undivided frames considering
the dividing process is quite fast.
2020-08-18 04:55:23 +10:00
itsmattkc
d9851dc329
decoders: mild refactoring and code cleanup
...
Just making things a little bit nicer.
2020-08-18 03:17:01 +10:00
itsmattkc
28dcff10c0
various: implement sequence pixel aspect ratios and interlacing settings
...
Implements the following:
- Sequences have pixel aspect ratios that work in tandem with footage PARs
to render footage correctly. Viewer and export also acknowledge PARs
- Sequences can have interlacing settings. This doesn't do anything yet,
eventually the renderer will need to interlace/deinterlace/reinterlace
appropriately in order to conform all the footage to the sequence. Export
acknowledges interlacing, but this only affects metadata, not the image.
2020-08-10 01:47:26 +10:00
itsmattkc
901f1001af
renderer: improved memory management
...
Clear up more memory when it isn't used for a while.
2020-08-09 14:03:11 +10:00
itsmattkc
df14c2aaa7
cache: better implemented changing disk cache folders
...
Not complete yet, but getting there.
2020-08-07 02:31:46 +10:00
itsmattkc
9a4dcd8277
ffmpegdecoder: handle unexpected EOF
2020-08-05 22:31:14 +10:00
itsmattkc
fb05594b50
various: allow setting footage aspect ratios
...
We had support for detecting aspect ratios and respecting them in the
render, but this allows people to not only see the aspect ratio in use,
but also override it with their own.
2020-07-25 00:58:01 +10:00
itsmattkc
11afdf32fe
decoder/timeline: improve decoding of still images
2020-07-12 18:25:51 +10:00
itsmattkc
a871c5081b
nodeparamtable: bare bones table view for node inputs
2020-06-17 17:48:07 +10:00
itsmattkc
cbbf1c9149
framehashcache: use correct linesize when saving EXR
...
Fixes stride issues on non-standard frame sizes.
2020-06-16 15:38:23 +10:00
itsmattkc
8d21a2c1ef
ffmpegdecoder: restore multithreading
2020-06-16 13:34:49 +10:00
itsmattkc
406f61e546
ffmpegdecoder: use last timestamp for initial seek calculations
...
Fixes bug that would destroy cache performance. Like... just annihilate it.
Like an absolute nuclear holocaust of cache performance.
2020-06-16 02:58:21 +10:00
itsmattkc
a9a13c4b0c
framehashcache: remove code for saving integer-based frames to cache
...
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc
9095dfa463
project: replaced proxy with pre-cache
...
Removed proxy task and replaced with a true honest-to-god pre-cache for
footage. This footage is pre-cached to a sequence and therefore 100% ready
for use in it once the task is done.
2020-06-08 23:17:51 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
814bbe8c22
fixed various segfaults in decoder and renderer
2020-05-18 02:40:58 +10:00
itsmattkc
863ae1b913
a first attempt at a new render system
2020-05-14 14:43:03 +10:00
itsmattkc
869f41fc50
ffmpegdecoder: fixed audio bug that failed to conform if the codec didn't supply a channel layout
2020-05-09 16:06:05 +10:00
itsmattkc
22bfff2c62
proxy: improved progress signalling
...
Signals once cache to disk is fully complete (rather than signalling on decode
and then sitting at 100% for ages until the disk saving is done).
2020-05-04 01:53:47 +10: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
a925476c3f
began work on exr proxy task
2020-05-03 05:23:36 +10:00
itsmattkc
1436d9b3eb
ffmpegdecoder: potential fix for deadlocks when closing
2020-04-23 21:13:43 +10:00
itsmattkc
9beff8b1e8
ffmpegdecoder: fixed deadlock if decoder instance was closed from main thread
2020-04-23 02:23:20 +10:00
itsmattkc
c9e797abdf
various: conformed frame usages to respect stride
2020-04-22 15:54:47 +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
ccb02d30aa
colormanager: implement default config
2020-04-22 05:08:33 +10:00
itsmattkc
81ad7b5054
ffmpegdecoder: fixed deadlock when closing a decoder instance
2020-04-21 23:15:21 +10:00
itsmattkc
290c8724c4
Merge pull request #1131 from luzpaz/typos-followup
...
Fix typos cont.
2020-04-16 12:21:45 +10:00
itsmattkc
9f7a9d85b4
ffmpegdecoder: fixed deadlock on non-video streams
2020-04-14 23:42:31 +10:00
itsmattkc
a2f954a0a7
memorypool: implemented arenas
...
A pool can allocate/destroy any amount of arenas during runtime, meaning it
won't run out of memory but we still get the advantages of one large allocation
as opposed to hundreds of small allocations.
2020-04-14 16:23:45 +10:00
itsmattkc
feceef0d62
ffmpegdecoder: impose limit on memory frame cache
2020-04-14 15:16:38 +10:00
itsmattkc
9cc343bf13
ffmpegdecoder: share framepool with all instances
...
We can conserve memory by sharing our frame pool amongst instances of the same
stream.
2020-04-14 14:51:31 +10:00
itsmattkc
7bfdf8af7c
ffmpegframepool: implemented functional frame pool
...
Includes splitting off core functionality to a base MemoryPool class that can
be re-used later if necessary.
2020-04-14 02:43:12 +10:00
itsmattkc
6bb972b4db
decoder: began implementation of a frame pool
2020-04-13 23:44:42 +10:00
itsmattkc
f80a82459b
ffmpegdecoder: clear cache_at_zero flag if frames are removed
2020-04-13 13:24:30 +10:00
itsmattkc
cdf5a1058d
ffmpegdecoder: re-use existing frame pool for memory management
2020-04-12 14:12:08 +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
ce7fa12520
ffmpegdecoder: implemented basic decoder crosstalk
2020-04-11 13:18:44 +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
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
luz.paz
4e1cd870a9
Fix typos cont.
2020-03-21 13:46:38 -04:00
itsmattkc
d4d969872f
ffmpegdecoder: if data is less than duration, fill remainder with 0s
...
Fixes bug where random/uninitialzed audio values may appear in some
circumstances.
Also switches swr_convert_frame to swr_convert for a small
optimization/improvement, no need to use AVFrame struct when we're only
interested in samples.
2020-03-18 19:05:02 +11:00
itsmattkc
de5955b403
oiiodecoder: implemented rudimentary image sequence support
2020-03-02 14:06:44 +11:00
itsmattkc
597f50fa37
ffmpeg: print more debug information, less useless information
2020-02-29 17:22:19 +11:00
itsmattkc
139c14f941
footage: fixed appearance of some metadata, particularly audio metadata
2020-02-29 17:19:47 +11:00