Commit graph

1220 commits

Author SHA1 Message Date
Zakk
82f695dbb7 Fixed broken building of layout export and fullscreen menus 2019-05-27 18:31:54 -04:00
Zakk
2e8ab9c1f0 Layout transitions now default to autoFit.
Restore drag and drop functionality of layouts/inputs etc onto transition view
Inputsource autofit keeps trying until the captureSource reports a non-zero size.
2019-05-27 05:01:10 -04:00
Zakk
cbf6f41f03 When creating layout transition subtype menu, set the transition name explicitly so it doesn't fall back to instantiating an actual LayoutSource and creating a bunch of audio engines.
Dealloc transition menu when it closes
2019-05-26 17:26:36 -04:00
Zakk
b69f46ac8a Layout source uses proper startEncoders call for the underlying audio engine 2019-05-25 07:42:11 -04:00
Zakk
21273b2428 Use a separate audio engine when recording a layout 2019-05-21 04:09:39 -04:00
Zakk
e74f3cc376 Audio engine dealloc properly references audio tracks now 2019-04-30 04:28:31 -04:00
Zakk
a22500e112 Use the pixel buffer pool provided by VTCompressionSession instead of creating one ourselves that is possibly the wrong format (AMD encoder doesn't like 422) 2019-04-07 02:27:02 -04:00
Zakk
1f14a767b3 Instant recorder now uses default audio track 2019-04-06 06:49:31 -04:00
Zakk
ae8408e801 Audio tracks can now be renamed. 2019-04-06 06:42:27 -04:00
Zakk
14897b2784 Add sorting to all instances of output track lists 2019-04-06 05:10:05 -04:00
Zakk
d51bd2a43c Refactor output tracks to use a real class.
Give output tracks a unique identifier that is reference internally instead of a name.
2019-04-03 05:30:31 -04:00
Zakk
897c765fba Right click+change name on layout button now correctly sets the layout's name 2019-03-10 23:33:14 -04:00
Zakk
c24adf5b83 Outputs now have an audio output selector/deleting.
Audio track configuration is now saved
2019-03-06 12:45:15 -05:00
Zakk
82245709ff Multi track audio support. New audio tracks can be added dynamically and audio inputs assigned to them.
TODO: removing them, saving them and allowing outputs to subscribe to only a subset of tracks.
2019-03-04 13:42:56 -05:00
Zakk
11508edddb Lots of changes for upcoming multitrack audio support. For now all outputs use the 'Default' track 2019-03-03 13:08:40 -05:00
Zakk
60d8fcb8c4 Slight rework of audio graphs:
The encode mixer is now a "down mixer".
Various changes to base node class and down mixer to handle keeping track of multiple inputs and outputs.
Added methods to down mixer for enabling input and output busses, and connecting them via crosspoint volume settings.
2019-03-03 00:58:34 -05:00
Zakk
d6f07a5d4e If the main window is occluded, stop the DisplayLink and hide the CALayer 2019-03-01 06:43:43 -05:00
Zakk
ac8355147e Fixed some warnings.
Display capture no longer uses deprecated IOPort functions, now iterates over the IOServices and finds the display via serial number.
Display capture now uses CGDisplay services UUID to identify displays.
2019-02-28 04:33:43 -05:00
Zakk
4a4326ae35 Make default layer color opaque 2019-02-27 05:04:58 -05:00
Zakk
0954c9025c Removed some NSLogs.
Don't spam observers/mouseevents on an already moused-on source
2019-02-24 05:22:58 -05:00
Zakk
a986fdd61f Version 2.1.8 2019-02-24 02:47:23 -05:00
Zakk
499343e7d5 Do proper macOS version check for CALayer update style in AVFoundation capture 2019-02-24 02:35:33 -05:00
Zakk
44ea53c11e Webcam capture limits the 'best format' choices based on the size of the currently active layout. It tries to match the resolution exactly, without exceeding it.
Some minor changes to auto meters
2019-02-22 06:42:26 -05:00
Zakk
1736bd8b38 Make script transitions toggle able 2019-02-19 03:35:26 -05:00
Zakk
5486d9ae11 Passthrough compressor was not checking output status before processing the frame. Added that check 2019-02-18 00:04:12 -05:00
Zakk
1ead60288b Added a menu to the system status item. Start/Stop stream only 2019-02-10 23:40:35 -05:00
Zakk
6d0d6aaeb0 Input source lists accept input library drops 2019-02-10 18:22:10 -05:00
Zakk
d382e1b9bb Input library items are re-nameable via clicking on their label.
Added an 'add' button to input library items: adds it directly to active layout. cmd-click adds directly to live layout
2019-02-10 10:20:33 -05:00
Zakk
6b8b62604e Fixed an issue where the live view would not render if the application started with Instant Recording enabled.
Protect layout renderer from multi-thread access
2019-02-09 23:36:54 -05:00
Zakk
7ca4930c9a Instant record files are now added as transient input library items (they do not save across application shutdown) 2019-02-09 14:07:39 -05:00
Zakk
26aa579601 Drag+dropped inputs into a preview view are now created on top of all other inputs 2019-02-05 03:58:37 -05:00
Zakk
4f28f0cad0 Added an option to movie inputs for deactivation upon play queue completion 2019-02-05 03:47:22 -05:00
Zakk
ddd87b07b7 Movie sources now default to playing when live, including when drag+dropped into a layout 2019-02-04 10:28:57 -05:00
Zakk
01bfad1ca2 Run input source frameTicks in parallel.
Improve formatting of some output statistics.
Add an encoder delay output statistic
2019-02-04 03:16:31 -05:00
Zakk
df38b7b535 When creating an input based transition via drag+drop, immediately save the input and dealloc it. 2019-02-03 00:46:22 -05:00
Zakk
6fb7e6f68a Remaining storage/use of x/y/w/h converted to CGFloat instead of float 2019-02-02 06:21:04 -05:00
Zakk
a8c00b753e Change save/restore of position/width to double 2019-02-02 05:55:59 -05:00
Zakk
1287397d8b Add missing CVPixelBuffer release to CALayer preview renderer.
Input based transitions now have a flag to autofit the input when it is added to the layout
2019-02-02 03:30:58 -05:00
Zakk
028ef54be5 Fix concurrency and CATransaction flushing issues with CALayer based preview view.
Fix resizing of inputs causing a dispatch/kvo storm due to mismatched coordinate types
2019-02-01 08:07:55 -05:00
Zakk
f2eb4ad0b4 Transition effects/filters now propagate through go live/swap.
Added support for applying multiple transition effects simultaneously.
2019-01-31 07:27:32 -05:00
Zakk
e22329f8cd Fixed an issue where input transition types would not properly save/restore if they'd never been used since program launch 2019-01-31 05:13:13 -05:00
Zakk
be69274d5d Toggled input source based transitions (input, layout for now) have a depth that is set relative to the order they are added. Most recently shift-clicked is on top of all other transition inputs 2019-01-31 04:48:33 -05:00
Zakk
81fdd1c773 Don't use metal for the LayoutRenderer, it seems to have issues with CIFilter transitions not being rendered 2019-01-31 04:02:44 -05:00
Zakk
d6f6becc38 Apple H264 compressor properly restores hardware force/disable settings 2019-01-30 05:36:40 -05:00
Zakk
619f257fc2 FFMpeg capture: only update layer contents when a new frame is available, instead of updating with an old frame.
CSPreviewCALayer: don't bounce rendering out of the DisplayLink thread via dispatch_async, movie playback is not smooth when doing so (but is ok bouncing out to main, or other threads without dispatch_async??!)
2019-01-29 04:05:19 -05:00
Zakk
a7de45a9c0 If a previewView is hidden, signal to the display layer that it doesn't have to bother displaying anything. (Turn off CVDisplayLink for the CALayer based preview renderer) 2019-01-28 04:32:56 -05:00
Zakk
bf47d8382d When moving on to the next movie in the ffmpeg source, if the 'next' item is the same as the 'current' one, just seek to time zero instead of reopen it. (fixes repeat/looping not working) 2019-01-28 04:00:25 -05:00
Zakk
ac406eb371 Don't hold onto the CVPixelBuffer in the metal preview render path: the renderer will do that for us and always serve us the latest one.
When InputSource updates x/y/w/h in frameTick, bounce the willChange/didChange calls through the main thread. We may be rendering on a background thread and just calling those causes the notification to update UI on non-main
2019-01-27 05:11:23 -05:00
Zakk
cf31677d9e Bump version to 2.1.7 2019-01-26 02:58:12 -05:00
Zakk
5be3889800 Remove some NSLogs in the audio code.
Add a NSStatusItem to the menu bar. Right now it only indicates stream status and hides/unhides the application on click. In the future It will provide quick access to outputs and other things
2019-01-26 02:54:04 -05:00