Commit Graph
75 Commits
Author SHA1 Message Date
itsmattkc 09c57422f9 ffmpeg: significantly optimized decoder 2022-05-15 19:33:01 -07:00
itsmattkc c75ee6014c ffmpeg: bypass ass encoding for srt
Fixes #1927
2022-05-14 08:56:06 -07:00
itsmattkc 83e7707025 media: implement importing SRT files 2022-05-11 13:48:59 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 4173eb3c49 conform audio to planar in the decoder 2021-10-13 16:01:26 -07:00
itsmattkc 677277c16d renderer: improved code flow 2021-09-21 19:10:03 -07:00
itsmattkc d713ba3be7 fixed 32-bit integer overflow on long audio 2021-08-08 17:05:41 -07:00
itsmattkc 69009180ab ffmpegdecoder: fixed bug where incorrect divider was stored 2021-05-30 12:25:41 +10:00
itsmattkc ba9ed99849 footage: check files for changes 2021-05-16 10:29:05 +10:00
itsmattkc 2484daf141 implemented full support for interlaced footage
Includes importing and exporting interlaced footage. Fixes #1340.
2021-05-03 13:56:54 +10:00
itsmattkc ee6b09f772 ffmpegdecoder: use avfilter system instead of raw swscale commands
Heh this was inevitable
2021-05-03 12:10:51 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 4827782331 moved sequence params into node graph too
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +11:00
itsmattkc 0fa05e1bc9 removed unused file 2020-11-27 14:28:09 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc 3c1ac3eeba upgraded to ocio v2 2020-11-11 21:53:24 +11:00
itsmattkc 94c0914e50 codec system rework
Codecs are now much cleaner and thread safe by design.
2020-11-10 11:23:25 +11:00
itsmattkc bc60c74562 finalized very, very basic OTIO support
Ironed out various project and footage loading issues, and a single
cache invalidation issue.
2020-10-23 01:26:17 +11:00
itsmattkc 917738d1de Merge branch 'master' into otio 2020-10-22 20:26:16 +11:00
itsmattkc d620af412f decoder: improved memory management 2020-10-13 23:49:30 +11:00
itsmattkc 6db591e89f footage: merge video and image streams and improve image sequence import process
Image streams were initially separated from video streams, but they're now
joined with a parameter defining if they're a still image, image sequence,
or regular video. The image sequence import process has also improved so
that if images from the same sequence are imported too, they'll either be
ignored or the user won't be asked again for those if they should be an
image sequence (fixes #1193). Also shifts decoder "probe" process to return
an item, useful if the decoder returns a non-footage item.
2020-09-26 19:45:07 +10:00
itsmattkc 050103a857 memory: implemented basic memory limiting functionality
Keeps track of total memory usage and uses it as a guide towards
allocating/reusing more memory.
2020-08-29 13:34:54 +10:00
itsmattkc c99eb68d45 ffmpegdecoder: frame pool by dimensions/format rather than stream
Memory optimization.
2020-08-26 17:42:10 +10:00
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 df14c2aaa7 cache: better implemented changing disk cache folders
Not complete yet, but getting there.
2020-08-07 02:31:46 +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 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 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 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 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 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 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