Commit Graph
70 Commits
Author SHA1 Message Date
Mike-Solar ea37dc5da6 Prevent main-process crash when render worker dies during IPC write
When a render-worker process crashed or exited while the worker-pool
thread was writing a control message (e.g. right after an audio-sync and
drag operation triggered a new render), the main process received SIGPIPE
and terminated at WriteControlMessage().

- Ignore SIGPIPE in main() so QProcess can report the broken pipe through
  its normal error path instead of killing the application.
- Harden WriteControlMessage() / TryWriteControlMessage() to check the
  process state and the number of bytes written before waiting.
2026-07-13 10:19:30 +08:00
Mike-Solar 341283b1cd Add graphics backend selection 2026-07-13 10:19:29 +08:00
Mike-Solar bfb1b2fce4 update copyright back 2026-01-16 21:22:05 +08:00
Mike-Solar 8ed5660faf solve some bugs 2026-01-05 18:01:13 +08:00
Mike-Solar b8669f6a11 Change project name; 2026-01-05 16:22:26 +08:00
Mike Solar 27ee6067cc Merge remote-tracking branch 'origin/plugin' into plugin
# Conflicts:
#	ext/KDDockWidgets
2025-12-13 21:46:12 +08:00
Mike Solar 22fd521951 Merge branch 'refs/heads/dev' into plugin
# Conflicts:
#	.gitmodules
#	CMakeLists.txt
#	ext/core
2025-12-13 21:45:46 +08:00
Mike-Solar 1e33a31b73 Update FFmpeg handling and focus management
Refactor FFmpeg frame processing and improve focus management in panels. Add memory sanitization for debug builds and update KDDockWidgets integration.
2025-11-23 16:35:09 +08:00
Mike-Solar 26e6924cdf feat: Implement OFX plugin support infrastructure
This commit adds comprehensive support for OFX plugins in Olive, including:

- Add plugin node infrastructure with getPlugin() method
- Implement OliveHost for managing OFX plugin instances
- Create OliveInstance to handle plugin parameter and timeline interactions
- Add OliveClip implementation for plugin clip handling
- Implement region of definition (RoD) and region of interest (RoI) functionality
- Add interactive mode support in Current class
- Integrate plugin rendering into RenderProcessor
- Fix include dependencies and remove unused OlivePlugin.cpp reference
2025-10-25 17:59:50 +08:00
Mike Solar b649b5e1bd change: Switch to offical OpenFX Support. Still can't compile. 2025-09-03 21:14:56 +08:00
Mike Solar 6fdfd03ffd update: update copyright 2025-08-05 17:12:49 +08:00
Mike Solar 74f73ab3be change: change code style to Linux style except indent. 2025-08-03 03:09:40 +08:00
Simran bb9928d56c Re-trigger CI 2024-08-25 00:13:26 +02:00
MattKC 8f12c9e2d6 Re-trigger CI 2024-08-23 14:42:52 -07:00
itsmattkc eaa9548e3b main: allow decompressing project files from command line 2023-02-20 14:56:30 -08:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkcandThomas Wilshaw a4056d8454 Upgrade to OpenGL ES 3.2 (#1879)
* upgrade to opengl 3.2

* cornerpin: no need for hack

* renderer: Update OCIO shader language to ES 3.0

Co-authored-by: Thomas Wilshaw <thomaswilshaw@gmail.com>
2022-03-20 11:17:18 -07:00
itsmattkc 82df30586d correctly handle unicode args on win32
Fixes #1810
2021-12-29 00:12:23 -08:00
itsmattkc e03b02d270 cmake: filled out macOS Info.plist
Fixes #1762
2021-10-08 11:49:39 -07:00
itsmattkc 7f36ac9faf main: improved warning message 2021-09-30 17:14:17 -07:00
itsmattkc 83c56c0263 opengl: show driver version info 2021-09-30 17:12:18 -07:00
itsmattkc 91c1edf210 main: updated detection 2021-09-30 17:08:21 -07:00
itsmattkc 22f9a46177 opengl: warn when graphics driver doesn't support crucial functionality rather than crashing 2021-09-30 17:02:16 -07:00
itsmattkc 34004bbf10 added manual crash trigger for handling testing 2021-09-30 16:04:57 -07:00
itsmattkc d1d23e5400 only free console if program launches in gui mode 2021-08-14 11:36:30 -07:00
Thomas Wilshaw 42dd029f9e Revert back to a console application
Revert Olive back to a console application and then hide the console on
startup.

Also add an option to run a console if required.

Windows only.
2021-08-09 23:14:12 +01:00
Thomas Wilshaw b1b057a628 Add a console if Olive is started via cmd 2021-08-09 15:07:21 +01:00
itsmattkc ae3393f031 opengl: use shared contexts and downgrade to ES 2.0 (BIG CHANGE)
If you run into new OpenGL issues, this is likely the commit that caused it.
I've tested this on as many systems as I have access to (including AMD, Apple,
Intel, and NVIDIA GPUs with a mixture of Windows, Linux, and macOS) and it
appears to work fine, however we all know how unpredictable GPUs can be.
This should help increase GPU performance and compatibility.

Squashed commit of the following:

commit fa3c0ac7c469aebe2941a803736bdc06cdd5a2d8
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:17:44 2021 +1000

    viewer: updated pixel sampling for shared contexts

commit 9334261da235f09cb67b193c5bb6169abd7a95f7
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 13:12:39 2021 +1000

    pixelsampler: show color preview box

commit dacd9be6971c5c0312ae45c8db349d47910a80dd
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:32 2021 +1000

    renderer: interlace on GPU

commit 074cea06cb87e9fdc4e8ea6b09587be6df296057
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:43:14 2021 +1000

    renderer: added texture clear option

commit 5d4f86b4cf1b1dcd3fb8e8c854ffa7f6fb8ca346
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 12:42:12 2021 +1000

    renderer: updated scopes for shared textures

commit 6fad96358d189874cf45f7887b7e13cc2b1603c4
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 11:42:05 2021 +1000

    opengl: fixed edge case

commit 1a19ffb53703ac6f30ed210f6d8eb5fc4b7b0f2d
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:56:13 2021 +1000

    opengl: fix deinterlace shader

commit 085961aa39cca90ebf51b919a78ef07a4882f0e1
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:08:40 2021 +1000

    opengl: downgrade to ES 2.0

    With half-float/float/3D extensions, this should be doable

commit ea1ab45cbcf5e017dfd0d8f28b231ff3255dfe92
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 27 10:06:59 2021 +1000

    renderer: fixed mutex deadlock

commit ecc2f08b16f03421870c5b61625ecd26f2f96582
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 21:28:13 2021 +1000

    opengl: fixed shared contexts

commit 261c689ea8089463155cf11b9ab15aa3f879f439
Merge: bfd4338a 91c88b1c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 19:52:00 2021 +1000

    Merge branch 'master' into shared-contexts

commit bfd4338aaa3b09b6fbb7717c637face8d5490721
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 18:52:38 2021 +1000

    viewer: remove debug line

commit 45868d8a396181bf81c24b92a1ac5ce9ffed3426
Merge: 642f8e9d d0bd5e21
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:21:48 2021 +1000

    Merge branch 'master' into shared-contexts

commit 642f8e9df7d7d1a9ed4202d428f4d968ff668552
Merge: 861e5b89 4de0a727
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 17:01:38 2021 +1000

    Merge branch 'master' of https://github.com/olive-editor/olive into shared-contexts

commit 861e5b89a38c281897dc44b20e3587d39c4f808c
Merge: 472598a7 ef31c3fb
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Wed May 26 14:28:21 2021 +1000

    Merge branch 'master' into shared-contexts

commit 472598a740a095aa43a4aad5680dd5abcf453a4c
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Fri May 14 16:29:35 2021 +1000

    attempt at sharing contexts
2021-05-29 20:02:45 +10:00
itsmattkc aeb3a83293 cmake: compile git hash into separate object
Should improve incremental compile speeds
2021-04-28 18:19:26 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 2c47462f8f add hidden options to our CLI parser to ignore Qt's parameters
Fixes #1511
2021-04-12 17:01:29 +10:00
itsmattkc ade4369199 revise opengl profile 2020-11-23 09:43:48 +11:00
itsmattkc 30b0af4f3a opengl: dropped minimum version to es 3.0 2020-11-19 16:55:19 +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 b9724e3910 attempted to implement localization loading 2020-11-17 16:04:09 +11:00
itsmattkc 48ac8ea509 main/core: changed code so that headless would run truly headless with QCoreApplication instead of QApplication
QApplication is designed for GUI/widget programs and thus fails to launch
if no window system is available. For a true headless mode, we must swap
out with QCoreApplication. However, what complicates this is that
QCommandLineParser - the class we use to determine whether we should run
in GUI mode or not - requires an active application instance to work.
This creates an unfortunate catch-22 that ultimately ended in writing a
custom command line parser.

Now we can correctly swap out with QCoreApplication, however this has
exposed other issues regarding functions that unnecessarily rely on QWidget
functions. So they'll need to be sorted out eventually.
2020-08-22 00:22:19 +10:00
itsmattkc 10709880fc preliminary google crashpad integration
First attempt at automated out-of-process crash reporting. Have only
updated AppVeyor script so far, so if this works (which it won't), it'll
only work on Windows.
2020-08-14 18:25:12 +10:00
itsmattkc a818e17c55 export: made progress on headless export
Still incomplete and unusable, but less so than before.
2020-06-17 18:06:50 +10:00
itsmattkc 29537fea3c app: don't use hidpi application attribute
This seems to cause issues on various platforms and isn't required a lot of the
time:

* macOS doesn't need this since the HiDPI setting is in the bundle's Info.plist
* Windows doesn't need this, in fact it seems to make fractional HiDPI worse
* Linux... who knows how to get HiDPI working on Linux
2020-06-09 16:18:14 +10:00
itsmattkc df7f0040ec mac: implemented support for retina displays 2020-04-28 21:08:36 +10:00
itsmattkc 4906bb7d53 scopes: don't use shared context
OpenGL shared contexts (through Qt at least) seem to be buggy. Scopes have been
shifted to a non-shared approach as a result.
2020-04-28 17:08:52 +10:00
itsmattkc 8d66989de3 Merge branch 'glsl-150' of https://github.com/Simran-B/olive into Simran-B-glsl-150 2020-04-23 22:37:39 +10:00
itsmattkc 5c736114d0 merged some export improvements from another branch 2020-04-23 01:31:50 +10:00
Simran Brucherseifer 7bd25ee36a Revert "opengl: use compatibility profile"
This reverts commit baa8df38f6.
2020-04-22 11:28:47 +02:00
itsmattkc baa8df38f6 opengl: use compatibility profile
The GLSL shaders are written in GLSL 1.10 even though the OpenGL standard is
set to OpenGL ES 3.2 Core. Many platforms allow this but some platforms don't.
For standards compliance, it's probably a good idea in the future to upgrade
the shaders to 3.2, but for now we'll use 3.2 Compatibility which will allow the
GLSL 1.10 shaders to compile.
2020-04-21 02:49:17 +10:00
itsmattkc 6f4bf70d3e scope: implemented waveform scope 2020-04-20 22:58:29 +10:00
itsmattkc 1c3c8cd9b2 began work on headless export path 2020-04-20 02:37:10 +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 597f50fa37 ffmpeg: print more debug information, less useless information 2020-02-29 17:22:19 +11:00