Commit Graph
298 Commits
Author SHA1 Message Date
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 441a459774 viewer: use label instead of media name 2021-01-09 10:38:04 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 06b29b3a35 Merge branch 'master' of https://github.com/olive-editor/olive 2020-12-30 14:46:15 +11:00
itsmattkc b604a7271d viewer: fix regression where multiple viewers could play at once 2020-12-30 10:38:34 +11:00
itsmattkc 374fa3f75c moved some files around for better organization 2020-12-16 19:05:22 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc 7dd9115e3f audiowaveformview: clamp start to 0 2020-11-30 12:07:22 +11:00
itsmattkc d82f484c4c audiowaveformview: on validation, only update visible sections 2020-11-30 08:57:51 +11:00
itsmattkc b39565cff4 audiowaveformview: multithreaded waveform rendering 2020-11-30 08:18:11 +11:00
itsmattkc 90edc4f933 timebasedwidget: added infrastructure of passing scroll wheel signals to the scrollbar 2020-11-29 10:08:37 +11:00
itsmattkc f8a5e28c37 code: removed double "protected" marker 2020-11-26 19:53:42 +11:00
itsmattkc bd2b3f7a7c gizmos: detect generated images like titles
Fixes #1413
2020-11-25 09:43:15 +11:00
itsmattkc 3cf4d58716 viewer: rewrote pixel sampling coordinate system
Fixes #1395
2020-11-22 21:25:10 +11:00
itsmattkc af0f6163af use floats in viewer scale 2020-11-22 18:47:21 +11:00
itsmattkc a6d382f4d4 further improved gizmos 2020-11-22 18:21:24 +11:00
itsmattkc bd215b34bc viewer: simplified sizing algorithm and add padding for fit so gizmos are easier to use 2020-11-22 13:01:52 +11:00
itsmattkc 66bf5db2e1 gizmotraverser: return sequence resolution and adjust texture resolution by pixel aspect 2020-11-22 10:24:07 +11:00
itsmattkc 1b0e69c05b viewer: fixed deinterlacing and pan regression, reworked gizmos 2020-11-22 10:23:32 +11:00
itsmattkc b463c5e6a5 viewer: adjust viewport by device pixel ratio
Fixes #1377
2020-11-19 11:05:51 +11:00
itsmattkc b3c3fe0fc8 merged video and audio nodes into a single media node
They performed exactly the same function so I don't think we need the clutter.

Also bumped the project version, but old projects are automatically converted.
2020-11-18 13:48:14 +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 ee5307336e re-implemented alpha assoc/deassoc when color managing 2020-11-15 10:41:29 +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 0429e70fe0 merged all drawing functions into a single shader processing function 2020-11-10 15:50:13 +11:00
itsmattkc 1d61f89920 large scale renderer rework
- Abstracts all OpenGL functionality including UI objects
- Cleans up several rendering codepaths
- Improves threading functionality
- Removes old code and problematic functions
2020-11-10 11:24:51 +11:00
itsmattkc 6ecdb02fd0 okay maybe not 2020-11-08 00:47:59 +11:00
itsmattkc 83cefbd7c7 uhh yeah this might be fubar 2020-11-07 22:44:27 +11:00
itsmattkc b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc 17efd0bd9b default to cache during playback 2020-10-24 10:13:16 +11:00
itsmattkc 4082f6d938 Merge branch 'master' of https://github.com/olive-editor/olive 2020-10-23 01:26:49 +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
Thomas Wilshaw 4ddc659335 MediaInput: Rename streams access methods.
Change MediaInput::footage() to MediaInput::stream() and
MediaInput::SetFootage() to MediaInput::SetStream() as they access
streams not footage.

Also update all instances of access methods to reflect this change.
2020-10-19 15:50:36 +01:00
itsmattkc 989dfb7016 footageviewer: reset time if footage is set to null 2020-10-12 18:08:44 +11:00
itsmattkc f56c745d93 viewer: don't use audio timebase if no video is connected
This feature may make a comeback later, but for the time being it causes
issues and I'm not sure it's even that useful.

Fixes #1256
2020-10-12 00:23:17 +11:00
itsmattkc f2bd891071 viewer: allow manually switching to the audio waveform view 2020-10-12 00:20:09 +11:00
itsmattkc 3b6ebb6e30 footageviewer: ensure footage is set to nullptr when disconnecting and update stack 2020-10-11 23:39:55 +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 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 871bc08c12 Revert "renderer: if texture is null, don't allocate a frame unless exporting"
This reverts commit 8e0c86a6fa.

Fixes #1209
2020-09-21 17:28:28 +10:00
itsmattkc 8e0c86a6fa renderer: if texture is null, don't allocate a frame unless exporting 2020-09-19 12:53:07 +10:00
itsmattkc 7bc841904a viewer: display image infinitely if video length is null
Allows for displaying still images in viewer without a finite length.
2020-09-19 12:52:50 +10:00
itsmattkc 855c460ff3 footageviewer: use sequence functions to set video/audio params
Code improvement by re-using existing code. Existing code prevents crash
when loading a still image.
2020-09-19 12:30:42 +10:00