itsmattkc
6754feb2f6
proxy: began work towards creating proxy from video
2020-05-03 17:09:52 +10:00
itsmattkc
e4c3b6bf7b
renderer/decoder: simplified audio PCM transcode
...
Turned the two-step PCM transcode into one step and simplified/removed much of
the unnecessary infrastructure that supported it. This makes the code cleaner
and generally improves the code paths.
2020-05-03 16:07:10 +10:00
itsmattkc
2eb03bf386
various: removed constructor.h include
2020-04-14 00:53:25 +10:00
itsmattkc
f08734d18e
index/confirm tasks: these tasks no longer need to open the decoder to perform said tasks
2020-04-11 17:36:16 +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
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
02909c6ba9
statusbar: added basic task UI feedback without requiring the task
...
manager to be open
2020-03-03 01:50:51 +11:00
itsmattkc
866db58965
taskmanager: use deleteLater rather than delete
...
This doesn't solve a known issue, but is probably cleaner/more robust code
regardless.
2020-02-23 11:45:16 +11:00
itsmattkc
b0c9711974
ffmpegdecoder: fixed double mutex lock
...
Error() would call Close() getting stuck in a double mutex lock that could
stall workers. This commit fixes that.
2020-02-21 20:04:36 +11:00
itsmattkc
f769e88e6d
taskmanager: restore one task per thread at idlepriority
2020-02-21 14:21:32 +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
e68e89c40b
renderer/decoder: use same background mechanism to conform audio as well
2020-02-19 16:45:34 +11:00
itsmattkc
77de011509
cmake: added ConformTask source files
2020-02-19 12:46:05 +11:00
itsmattkc
4bcbe290f4
task: Created ConformTask so audio conforming can be done as a background
...
process
2020-02-19 12:44:29 +11:00
itsmattkc
53551246da
decoder: signal indexing progress
...
Better UI interactions, actually shows the progress of the index function in
the task manager now.
2020-02-19 12:19:42 +11:00
itsmattkc
55cdd47933
indextask: fixed typo and pass cancelled signal to Decoder::Index()
2020-02-17 02:14:32 +11:00
itsmattkc
c0d42c4fda
taskmanager: fixed typo and restricted taskmanager to one task at a time for now
2020-02-17 02:11:04 +11:00
itsmattkc
fd49b6eb55
taskdialog: created ProgressDialog-based dialog for modal tasks
2020-02-17 02:05:40 +11:00
itsmattkc
21755c7f20
taskmanager: ensure task is finished before deleting it
...
Fixes race condition that could result in a segfault if a Task hadn't emitted
Finished() before it was destroyed by TaskManager.
2020-02-16 13:01:38 +11:00
itsmattkc
080fe22969
taskmanager: made AddTask() a slot so it can be queued from other threads
2020-02-16 10:29:11 +11:00
itsmattkc
e93c3d4ce4
taskmanager: try to start next waiting tasks when a task finishes
...
Fixes bug where tasks would get stuck indefinitely.
2020-02-16 10:28:34 +11:00
itsmattkc
3efbcc28ef
ffmpegdecoder: improved index reliability
2020-02-15 23:39:33 +11:00
itsmattkc
653709dc84
try to index media immediately on import
...
Since indexing is supplemental, it can be made a background task that can occur
at more or less any time. So we run it as soon as possible.
2020-01-17 03:58:29 +11:00
itsmattkc
75a9291cd2
refactored import function for greater robustness
...
The import function was written early on in the rewrite as a multithreaded
background task that was considered somewhat flawed. While it worked for the
most part, there were possibilities of race conditions that could have
potentially been fatal, particularly since media could theoretically be
deleted while the import/probe tasks were running in the background.
With the save/load functions coming in, it became even more complicated as
projects may include metadata about the footage that can't be implemented
easily when the footage is imported/probed in the background. Making importing
a modal task fixes all of these issues, it's still done in a background thread
to not hang the GUI thread, but the GUI thread can be briefly "paused" in a
user friendly way so that all these functions can be safer.
2020-01-15 15:19:14 +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
401de26733
updated other classes for the previous commit's file moving
2019-12-21 20:07:14 +11:00
itsmattkc
4b2f4bcdb2
fixed occasional import segfault
2019-09-08 12:18:27 +10:00
itsmattkc
b81d0598b3
minor adjustments to render threads
2019-08-29 18:53:06 +10:00
itsmattkc
1616166fbc
worked on thread safety with tasks
2019-08-09 12:31:02 +10:00
itsmattkc
c0f6ee534a
minor code cleanups
2019-08-09 10:43:14 +10:00
itsmattkc
f26eea1620
moved more objects to shared ptrs
2019-08-09 08:21:54 +10:00
itsmattkc
6833b18829
merged probe functions into decoder class
2019-08-08 17:22:26 +10:00
itsmattkc
f8830beac7
created new sequence dialog
2019-07-21 18:21:40 -07:00
itsmattkc
7b870de338
added mutex to items
2019-07-07 23:35:34 -05:00
itsmattkc
5e3c2fb7e4
documented (nearly) ever class
2019-07-06 23:32:01 -05:00
itsmattkc
a9ff2389e6
minor code cleanup
2019-07-06 21:17:19 -05:00
itsmattkc
3038af3482
tasks are shared ptrs that can be cancelled and undone
2019-07-06 13:22:47 -05:00
itsmattkc
b62ec30015
changed items to shared ptrs
2019-07-06 12:50:00 -05:00
itsmattkc
a6971b3fde
more work on project management
2019-07-06 09:46:55 -05:00
itsmattkc
dae4310a7e
reimplemented importing folders
2019-07-05 00:55:35 -05:00
itsmattkc
85b5bbd5d6
documentation and folded item delegates from old code back in
2019-07-02 03:01:46 -07:00
itsmattkc
0966b62f29
various improvements to import process and project management
2019-07-01 15:40:09 -07:00
itsmattkc
026c500802
minor improvements to css
2019-07-01 11:08:14 -07:00
itsmattkc
70cf6565f4
some taskthread documentation
2019-06-30 12:32:02 -07:00
itsmattkc
8e006f3883
automatically delete tasks that have completed successfully
2019-06-30 12:28:40 -07:00
itsmattkc
4241937069
license and documentation for task
2019-06-30 12:13:13 -07:00
itsmattkc
db5641a0a4
created import and probe tasks
2019-06-30 11:19:20 -07:00
itsmattkc
2e6b36b2ae
remove UI objects when a task is deleted
2019-06-29 02:30:42 -07:00
itsmattkc
84720b39cb
simple UI for tasks
2019-06-29 01:42:07 -07:00
itsmattkc
1a25a14a61
tasks have dependencies
2019-06-28 10:57:25 -07:00