Commit Graph
34 Commits
Author SHA1 Message Date
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
itsmattkc 163ad76456 renderer: rewrote frame compression algorithm
This function was noticeably lagging the main thread while caching. The
cause was OpenEXR's internal thread pool competing with our main
thread. Since we have our own system of worker threads, its thread pool
was unnecessary for caching, however for normal playback it was a useful
optimization. Unfortunately OIIO (which we were using to save EXRs)
didn't provide quite enough control over OpenEXR's threading behavior
(only providing control for over the global thread pool and not on
a per-image basis), so for caching we've switched to using OpenEXR
directly. This has noticeably sped up the main thread while causing no
noticeable slowdown to the caching process.
2020-02-29 01:00:17 +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 04759b88cf qt/opengl: fixed bug that caused black screen on some platforms 2020-02-21 18:21:07 +11:00
itsmattkc cc8e5bc9d2 opengl: don't share contexts and use older version 2020-02-13 15:38:11 +11:00
itsmattkc cfff198503 Merge branch 'version-from-cmake' of https://github.com/eszlari/olive into eszlari-version-from-cmake 2020-01-20 06:07:46 +11:00
itsmattkc 61c60e00d6 various small code cleanups and improvements
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc 3a7b3ffac6 implemented audio exporting
The encoder was moved to its own thread and will transcode the PCM from the
audio renderer into the chosen codec while the video frames are still
received. The implementation isn't perfect and could use some cleaning up, but
it is functional at the moment.
2019-12-23 01:45:27 +11:00
Peter Eszlari 052ae7325a use APPVERSION define
...and display version in about dialog
2019-12-06 06:45:08 +01:00
itsmattkc 56e3fd41e5 various UI reimplementations from 0.1.x 2019-09-26 03:49:49 +10:00
itsmattkc c5572876fa fixed issues with some opengl implementations 2019-09-13 00:32:41 +10:00
itsmattkc 1879dac247 minor fixes and debug output 2019-09-11 17:35:45 +10:00
itsmattkc 6dc62a8703 added custom debug handler 2019-09-10 23:44:35 +10:00
itsmattkc 9ff4a81ec8 partially functional transform 2019-09-09 18:11:04 +10:00
itsmattkc 39256fd6f9 made node edge changes undoable 2019-07-17 00:14:49 -04:00
itsmattkc ce1e189a3d added UI items for a rolling edit tool 2019-07-09 01:14:32 -05:00
itsmattkc 06f195eca1 added minimal main page to documentation 2019-07-07 00:13:44 -05:00
itsmattkc 1fec3fb282 finished main menu reimplementation 2019-06-18 08:47:18 -07:00
itsmattkc a468b3727d further development on rewrite 2019-06-17 16:05:51 -07:00
itsmattkc 9afbe92574 began large scale restructure 2019-06-17 10:17:04 -07:00