Commit Graph
128 Commits
Author SHA1 Message Date
itsmattkc bf787b1d2f projectproperties: updated to assume empty config is default config 2020-04-22 14:04:10 +10:00
itsmattkc ccb02d30aa colormanager: implement default config 2020-04-22 05:08:33 +10:00
itsmattkc 38fcad6a3f cache: fixed signalling issue where changing default input didn't update the cache 2020-04-21 23:48:26 +10:00
itsmattkc c84f7fe724 style/preferences: don't set style if it hasn't changed
Improves Preferences dialog's "accept" speed. Before it would try changing the
style no matter what which took a noticeable amount of time to do for no real
purpose if the style didn't change.
2020-04-21 19:35:04 +10:00
itsmattkc 50d336ffb8 preferences: improved audio tab device refreshing
We used to use a somewhat convoluted process of multithreading since refreshing
the devices could take some time. Now we use the high-level QtConcurrent API
which reduces much of the complexity on our end and makes the code more
manageable.
2020-04-21 19:33:34 +10:00
itsmattkc 707e9d5522 project: fixed bug where ocio config wouldn't automatically load from a saved project 2020-04-18 17:55:23 +10:00
itsmattkc d3b71e6576 nodes: color management when setting color parameters is now preserved 2020-04-18 17:43:37 +10:00
itsmattkc f73c41d3fa various: implemented multiple project support
This required various changes to various parts of the infrastructure (mostly
using paths to finding the "root project" of any given object throughout).
Now theoretically infinite projects can be opened and accounted for at any
given time.
2020-04-18 01:50:47 +10:00
itsmattkc cc8699c0bc colordialog: don't clamp values 2020-04-16 15:26:05 +10:00
itsmattkc 32969d2403 colordialog: updated to show input/reference/display values 2020-04-15 18:11:46 +10:00
itsmattkc f5a9dee139 exportdialog: added elapsed/remaining time indicator 2020-04-08 01:48:03 +10:00
itsmattkc 1b4c241b5b windows: implemented export progress on taskbar button 2020-04-06 18:13:07 +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 1c063c5c11 export: began windows taskbar button progress feedback 2020-04-06 03:33:52 +10:00
itsmattkc d5581f0772 preferencesdisktab: when browsing for a disk cache path, start in the currently set dir 2020-04-04 14:09:00 +11:00
itsmattkc f8d9404cc9 colorspacechooser: ensure a (none) option is available 2020-04-04 12:24:03 +11:00
itsmattkc 98e5b175e9 colordialog: various improvements that should ultimately be near completion 2020-04-04 04:22:55 +11:00
itsmattkc 730b94c471 colorspacechooser: implemented setting input color space 2020-04-04 04:21:48 +11:00
itsmattkc e1ca5f2f82 various: removed hardcoded OCIO::ROLE_SCENE_LINEAR to allow for a configurable reference space 2020-04-03 01:30:47 +11:00
itsmattkc 552163320c colorpicker: implemented color management
Also moves some items to ColorManager from Project for better accessibility and
re-uses some widgets in ExportDialog for improved code.
2020-04-03 01:23:08 +11:00
itsmattkc 4d0b8f18e2 colordialog/picker/wheel: finished color picker UI
Dialog is still unmanaged, but that's the only remaining step.
2020-04-02 19:26:30 +11:00
itsmattkc f3290003be colordialog/wheel/gradient: implemented basic UI components for color picking 2020-04-02 13:02:30 +11:00
itsmattkc bcc8eaee55 colordialog: began widgets and dialogs for a managed color picker 2020-04-01 17:57:19 +11: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
itsmattkc be6bea234b exportdialog: make integer slider for crf smaller
Using QSizePolicys seemed to always produce some variant of the IntegerSlider
and QSlider consuming roughly half of the width each. The IntegerSlider is only
two characters wide at any one time so this results in a lot of wasted screen
real estate. This commit limits the integer slider to 4 characters wide (more
than 2 to allow for UI padding)
2020-03-31 12:41:08 +11:00
itsmattkc af0d85f0cc exportdialog: added filename validation
Ensures filenames end with the appropriate extension (necessary for
communicating the output format to both FFmpeg and OIIO) and moves overwrite
check from file dialog to render since it's still possible to type the
intended filename. Also checks the intended output directory and creates it
if it doesn't already exist.
2020-03-31 12:23:47 +11:00
itsmattkc 4dcc672b23 taskdialog: improved signalling
Ensures task errors are picked up and objects are deleted at the most
appropriate times.
2020-03-28 12:13:51 +11:00
itsmattkc 84aab543ca oiiodecoder: always add 1 frame to image sequences so the end frame is shown 2020-03-28 11:29:51 +11:00
itsmattkc e5ac72fa9d Merge branch 'master' into typos 2020-03-19 12:16:09 +11:00
itsmattkc 27d7822fa9 preferences: added setting for rectified waveforms 2020-03-18 14:23:23 +11:00
itsmattkc a6fb0c7e2b footageproperties: fixed bug that failed to update image sequence end time 2020-03-15 14:28:26 +11:00
luz.paz 321e7d1606 Fix doxygen and misc. typos
Found via `codespell -q 3 -L ba,keypair,numer,uint`
2020-03-10 15:00:56 -04:00
itsmattkc 16b072fa98 various: allow users to override the start and end index of image sequences
Also includes various fixes to footage property setting/signalling.
2020-03-09 19:58:42 +11:00
itsmattkc 0131d83256 footageproperties: allow for sanity checks before accepting/making changes 2020-03-09 19:56:10 +11:00
itsmattkc baf3fbde05 global: made every user action set a project "modified" state that will prevent
the main window from closing instantly
2020-03-03 14:33:45 +11:00
itsmattkc 0f5cd40c45 exporter: add ability to cancel exports (including a confirm to cancel if the
user closes the dialog mid-export)
2020-03-03 02:37:18 +11:00
itsmattkc 9e8a384f14 encoder/exportdialog: add compression options for H264 exporting 2020-03-03 01:47:04 +11:00
itsmattkc 31edfdc28b crashhandlerdialog: added system information and made text area read only 2020-02-28 16:44:05 +11:00
itsmattkc 3ba27b5fc1 crashhandler: removed old test code 2020-02-28 13:40:35 +11:00
itsmattkc ff69e69be4 crashhandler: updated for linux 2020-02-28 13:37:02 +11:00
itsmattkc c32ed5955c implemented simple crash handler 2020-02-28 13:21:32 +11:00
itsmattkc 02ce48d0c6 various: pixel optimizations
Several things are accomplished in this commit, including:

- Use OIIO instead of our own functions for pixel format conversions
  (cleaner code/less for us to maintain)

- Fold all PixelService functions into the PixelFormat class
  (cleaner code)

- Moved OpenGL pixel definitions to OpenGL classes and out of the
  global classes.

- Add support for RGB buffers as well as RGBA (optimization)
2020-02-27 13:54:38 +11:00
itsmattkc 428cfc6210 exportdialog: use sequence name and project directory to auto-select export
filename
2020-02-27 00:58:19 +11:00
itsmattkc 78daf9e28a exporter: updated exporter to function with new render system 2020-02-25 20:03:15 +11:00
itsmattkc 8d7b94658b footagepropertiesdialog: show colorspace and alpha association properties on
image streams
2020-02-25 14:59:48 +11:00
itsmattkc 7a95af7069 taskdialog: fixed issue that would sometimes kill a thread before it was
finished leading to a SIGABRT from qt
2020-02-23 11:44:30 +11:00
itsmattkc 4c61abbbf0 preferencesdisktab: use cache clear button to provide user feedback rather than
a messagebox

A slightly more subtle way to provide feedback.
2020-02-20 23:35:50 +11:00
itsmattkc 5a070f14de general: use IdlePriority rather than LowPriority
Fixes a number of playback stuttering and general UI lag issues by setting all
background tasks to IdlePriority rather than LowPriority. While it was assumed
LowPriority tasks would always get scheduled below NormalPriority (e.g. main
thread) tasks, it turns out this is not always the case. If the background tasks
start consuming a lot of CPU cycles, the scheduler may use "dynamic scheduling"
to schedule them above the main thread regardless leading to UI lag. This is
apparently the case for all thread priorities apart from IdlePriority, which
is allegedly a special case where threads are *only* scheduled when other
threads aren't busy ensuring the main thread stays responsive.
2020-02-20 17:48:50 +11:00
itsmattkc 03bdf01357 decoder/renderer: no longer index automatically as part of the retrieve
functions

Indexing is a lengthy process and had a high chance of getting RenderWorkers
stuck doing it rather than being responsive to cache requests. This commit
introduces a system where workers never index media, but instead signal that
media is not ready to their RenderBackends which ensure that the media gets
indexed and re-queues the affected frames when those indexes are ready.
2020-02-19 11:44:29 +11:00
itsmattkc 73ba2f4c96 taskdialog: complete implementation of TaskDialog 2020-02-17 02:14:11 +11:00