Commit Graph
229 Commits
Author SHA1 Message Date
Thomas Wilshaw 7e93eb6e40 Allow image sequences to use a period seperator
Allows image sequences of the form xyz.0000.exr as well as xyz_0000.exr

Fixes #1602
2021-05-03 12:09:24 +01:00
itsmattkc 9d2ddbf727 renderer/decoder: clean up decoders after some time 2021-04-30 11:13:57 +10:00
itsmattkc 2416891c76 encoder: minor improvements 2021-04-28 23:12:14 +10:00
itsmattkc 51ccaedc78 render: implemented frame pool
Optimization
2021-04-28 17:31:25 +10:00
itsmattkc 1fca3e1767 render: properly defined "out of bounds time" behavior with footage
If a user extends a clip beyond the footage's length, they can
choose whether they want a black frame, the last frame continued,
or for the footage to loop infinitely (same for extending earlier
than the start of footage).
2021-04-23 14:49:21 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc bb32048c65 use frame rate and timebase less interchangeably 2021-04-07 13:08:25 +10:00
itsmattkc 898ea25e89 finished merge of viewer and footage 2021-04-06 13:08:56 +10:00
itsmattkc 57ddae8920 h264section: set min bit rate on target file size 2021-04-06 12:38:31 +10:00
itsmattkc fb410e7c96 use vectors for sample buffers rather than raw ptr arrays 2021-03-17 11:54:14 +11: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 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +11:00
itsmattkc 0699795c6f export: implemented audio bit rate setting
The UI for this isn't perfect, I just wrote this in because I needed it. But the backend is solid.
2020-12-04 01:01:50 +11:00
itsmattkc 0fa05e1bc9 removed unused file 2020-11-27 14:28:09 +11:00
itsmattkc f068343a08 oiio: actually store the last opened sequence index
Fixes #1376
2020-11-26 19:53:29 +11:00
itsmattkc 42506e0da0 ffmpegdecoder: fallback to footage duration if available 2020-11-20 18:13:53 +11:00
itsmattkc 8c3f0ac64e oiio: increased minimum version to 2.1.12 2020-11-19 11:06:40 +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 15a29288aa added Q_OBJECT macro to classes that were missing it 2020-11-17 19:13:16 +11:00
itsmattkc 2c086ce9fb removed debug line 2020-11-16 01:33:24 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc c9a8b96c89 reimplemented export process 2020-11-13 22:05:43 +11:00
itsmattkc 8776bb9c4a finished upgrade to ocio v2 2020-11-12 15:36:29 +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 b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc 94321c0a86 align frames to 32 bytes instead of 16 2020-10-28 15:50:56 +11:00
itsmattkc 1e6208517f decoder: fixed regression in image handling in OIIO decoder
Fixes #1277
2020-10-27 12:36:55 +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 9613730ee8 Merge branch 'otio' of https://github.com/olive-editor/olive into otio 2020-10-22 22:13:37 +11:00
itsmattkc 917738d1de Merge branch 'master' into otio 2020-10-22 20:26:16 +11:00
itsmattkc c37607bf66 Merge pull request #1269 from ThomasWilshaw/otio_cmake_fix
Fix building without OTIO support
2020-10-20 23:31:19 +11:00
itsmattkc db8d321fa7 project: improved loading and footage importing 2020-10-19 14:41:01 +11:00
Thomas Wilshaw 70455c1501 Fix building without OTIO support
Added a new CMake flag that stops any OTIO related cpp files being
built.

Added extra #ifdefs to catch any OTIO related code in other cpp
files.
2020-10-15 18:59:06 +01:00
itsmattkc d620af412f decoder: improved memory management 2020-10-13 23:49:30 +11:00
itsmattkc 7c0d7a9fe3 ffmpeg: manually retrieve audio duration if metadata doesn't provide one
We did this for video, now we do it for audio too.

Fixes #1266
2020-10-12 17:58:56 +11:00
itsmattkc f7ab0bb640 audio: rewrote audio cache to write to contiguous segments rather than one long file
Fixes issues with PCM file placement, optimizes some audio-based timeline
and cache operations, just generally a better approach.
2020-10-11 23:27:40 +11:00
itsmattkc b220dd88e7 otio: implemented some basic import/export functionality
Certainly not complete, but mild import/export capability.
2020-09-27 00:39:51 +10: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 85abd6c6b4 Merge branch 'master' into otio 2020-09-25 17:00:02 +10:00
itsmattkc 4290d9b897 oiio: removed unused enum 2020-09-25 16:59:56 +10:00
itsmattkc 818f38d55a otio: started otio decoder for importing OpenTimelineIO 2020-09-25 16:58:07 +10:00
itsmattkc 7bdaf78af8 oiio: assume it's not an image sequence if the dimensions aren't equal 2020-09-21 12:21:17 +10:00
itsmattkc 8506c82a0c import: safely handle unsupported files
Fixes #1191
2020-09-18 12:58:55 +10:00
itsmattkc e42ba3f9d4 corrected compile issues on xenial (should fix linux CI) 2020-08-30 13:35:00 +10:00