Commit Graph
520 Commits
Author SHA1 Message Date
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 ddbca1ba51 Merge branch 'master' of https://github.com/olive-editor/olive into render-singleton 2020-11-12 00:57:12 +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 13dd31d5be began rewrite of renderer inner workings 2020-11-06 20:18:10 +11:00
itsmattkc 26e351d363 moved frame cache saving to our custom thread pool so we can control the priority 2020-10-29 03:12:04 +11:00
itsmattkc 84a1ec0ca3 began graphics backend enum 2020-10-29 02:59:18 +11:00
itsmattkc a3a57181a6 re-copy list when waiting since it may have changed 2020-10-29 02:59:10 +11:00
itsmattkc 34cb7c96de further enclosed C locale setting 2020-10-29 02:20:59 +11:00
itsmattkc 00fef29cac fixed issues where hashes wouldn't set correctly 2020-10-29 02:18:58 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc 59241f9023 generate OCIO extraction directory BEFORE setting C locale for OCIO 2020-10-29 01:39:22 +11:00
itsmattkc b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc 43873e79e9 clear decoders when viewer is disconnected 2020-10-28 15:50:20 +11:00
itsmattkc 5343ec4b86 use default playback cache if there's no project 2020-10-28 15:49:53 +11:00
itsmattkc 5f5d6e82ab audioplaybackcache: fixed bug in one of the shift operations 2020-10-24 14:18:59 +11:00
itsmattkc 921608e1df audioplaybackcache: fixed various audio issues
Fixes #1276
2020-10-24 13:59:12 +11:00
itsmattkc 7e637a7372 calculate audio bytes as a 64-bit number 2020-10-24 13:55:07 +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 e5b18fa45b audioplaybackcache: fixed bug where the wrong segment may be targeted 2020-10-14 17:40:15 +11:00
itsmattkc d20877570e Merge branch 'master' of https://github.com/olive-editor/olive 2020-10-13 23:59:52 +11:00
itsmattkc 65507d81ea audioplaybackcache: use null samplebuffer to write silence 2020-10-13 23:48:59 +11:00
Thomas Wilshaw b676f2f8b6 Fix #1252
Checks if the SampleBuffer is valid before trying to extract its
packed data. If it is not valid Olive writes blank segments instead.
2020-10-13 12:19:06 +01: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 909dd37cc2 files: continue using temp location for temp files and use cache location just for ocio 2020-09-28 14:20:48 +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 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 9a46fc5891 cache: invalidate AFTER iterating map
Fixes #1183
2020-09-21 12:28:47 +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 01428276f7 export: alternate method of checking video/audio parameters based on ticket type
Fixes #1196
2020-09-18 13:06:10 +10:00
itsmattkc 43d0129004 renderer: unqueue deleted node inputs
Fixes segfault when renderer tries to update from a since deleted node
input.
2020-09-05 19:49:34 +10:00
itsmattkc cabcd49b25 renderer: copy cache path before render to avoid race conditions 2020-09-05 18:48:54 +10:00
itsmattkc f86ab6a965 renderer: prevent infinite loop occurring on some time invalidations 2020-08-26 17:38:16 +10:00
itsmattkc f6760386ce renderer: improved handling of pixel aspect ratio and footage cache 2020-08-21 14:43:13 +10:00
itsmattkc 75c3a37c17 removed speed/duration dialog
This is the first step in what will eventually be keyframable time
remapping. The speed/duration dialog was a holdover from 0.1 and we can
probably do better here.
2020-08-19 17:42:52 +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 0f3a60aa49 cache: save disk cache index on a regular interval in case of crashing
DiskManager tries to keep track of all files made across sessions in an
index, but the index was only saved on close. This meant if the program
crashed (not an uncommon occurrence at the moment), it would "forget" about
any files it had made that session.
2020-08-16 17:08:04 +10:00
itsmattkc b3e30b8daf renderer: clear auto-cache tasks when disconnecting viewer node
Fixes segfault that could occur when switching sequences.
2020-08-16 16:50:23 +10:00
itsmattkc ec8b046f02 viewer: implemented basic deinterlace
Implements a very basic GLSL deinterlace that simply halves the vertical
resolution and then interpolates between the fields. This can be toggled
on or off.

The reasons for being so basic is:
- Speed, very quick code running in OpenGL
- It would seem the highest quality deinterlacers are temporally based
  which doesn't make much sense for the viewer, particularly since we can't
  double the frame rate since our timecode is fixed to the frames.

Higher quality interlacing/deinterlacing will be present in the actual
renderer.
2020-08-11 02:02:50 +10:00
itsmattkc 03e33227b3 cache: moved disk settings to a separate dialog
This way the cache settings can be accessed in both ProjectProperties and
Preferences.
2020-08-10 20:30:11 +10:00
itsmattkc e21b68be53 renderer: queue hash setting from another thread
Fixes race condition that caused many segfaults.
2020-08-10 02:09:24 +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 edeeed49ba various: enabled config saving 2020-08-08 02:44:39 +10:00