Commit graph

35 commits

Author SHA1 Message Date
Zakk
d36a6a445d Use proper audio format (with channel layout) when creating pcm player inputs 2020-04-18 07:25:45 -04:00
Zakk
a0efc75baa IF a layout source is doing auto-cropping to a contained source, reset the crop rectangle if no contained input matches the pattern 2020-04-17 19:29:24 -04:00
Zakk
51e4356993 Initial work on clean/modernization of the audio engine.
Audio Graph now keeps track of connections via connection objects.
Connecting nodes now requires an AudioFormat, and the format is set on both ends of the connection. No more explicit setting of stream formats.
CAMultAudioPCM is now based on AVAudioPCMBuffer
Most instances of AudioStreamBasicDescription are replaced with AVAudioFormat
2020-02-21 08:55:40 -05:00
Zakk
e71240fc85 Fix a bunch of deprecations that came along with deploy target 10.12
When a new audio device connects don't force add every device to the audio engine.
Implement layout delete event in layout capture
Various fixes for some multithread access issues
2019-12-07 22:26:28 -05:00
Zakk
9021929c56 Don't autofit/direct size a zero rectangle frame, doing so generates a runtime exception.
Protect audio graph node list from multithread access
2019-11-02 21:08:31 -04:00
Zakk
24f5d7e6c0 Change internal handling of staging and live views to improve consistency and reduce side-effects/order dependencies when loading and saving. 2019-10-22 14:54:16 -04:00
Zakk
9f1ad626f4 Allow multiple instances of the same hardware audio input so they can be attached to different output tracks with separate volume/effects etc.
Added a flag to audio inputs (in layouts) that toggles if they cause a new instance of a hardware input to be created, or use one that already exists (if it does)
2019-10-20 20:42:34 -04:00
Zakk
d08893309e Create multiple audio instances for layout sources: one for each output track 2019-10-17 14:33:46 -04:00
Zakk
abb0e07c19 When creating temporary/clone audio engines, mirror the system output tracks into them.
Change layout renderer back to CARenderer: SceneKit now does complex colorspace/gamma and not all capture sources provide the proper formatting to look correct.
Change layout capture source so it pretends to an OutputDestination attached to a Passthrough compressor.
Added default Passthrough compressor with noCopy set.
2019-10-16 13:21:43 -04:00
Zakk
fe99869347 Update settings files for localization changes Xcode was complaining about.
When restoring audio engine, don't re-attach the default output track
2019-06-06 05:54:15 -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
b69f46ac8a Layout source uses proper startEncoders call for the underlying audio engine 2019-05-25 07:42:11 -04:00
Zakk
4883820f07 Fix some warnings.
Don't crash if an image capture file path doesn't exist
2018-07-31 23:20:26 -04:00
Zakk
c117fb091e Improved the thread safety of adding/removing inputs from an audio engine 2018-07-29 08:17:10 -04:00
Zakk
8c0bd081b2 Fixed block retain -> retain self cycle when listening for default audio device changes 2018-05-26 11:27:31 -04:00
Zakk
497470dcf1 Changed attach audio input creation/pcm player so that Capture plugins no longer need to care if they are live or not. Just create the PCM input whenever you want and it will Do The Right Thing.
Added a capture plugin API that creates an attached audio input AND a pcm audio input simultaneously.
2018-04-15 00:02:35 -04:00
Zakk
577aeca078 audio engines stop+dealloc their encoders when they are realloced.
input transitions don't automatically instantiate the input just to get the name
2018-04-08 02:05:53 -04:00
Zakk
988ebdee39 Input based transitions can be toggled via shift-click. A toggled transition runs the preChangeAction+scripts when clicked. The postChangeAction scripts are only run when the transition is clicked/toggled again.
Use as an alternative for getting lower third style graphics on screen without merging a layout.
2018-04-04 02:30:26 -04:00
Zakk
33b0672632 Layout source doesn't set the layout as a device, instead it stores the UUID and re-fetches it when needed. 2018-03-31 21:50:36 -04:00
Zakk
dd9b89c258 Update project settings for new Xcode.
added dummyAnimation function to animation input wrapper.
slightly reworked how input.waitAnimation() works; the previous implementation possibly messed with other input timings.
converted input transitions to use input specific waits and dummy animations. This allows scripts/other transitions to run simultaneously
2018-03-31 08:14:13 -04:00
Zakk
afab265b83 WIP transition rework 2018-03-25 10:30:31 -04:00
Zakk
2d8b02f30f Layout transition configuration and re-implementation of hold time and wait for media 2018-03-22 11:25:37 -04:00
Zakk
c5610ad1e8 Properly setup single-view mode when it is restored on startup 2018-03-22 09:23:01 -04:00
Zakk
d35904c93a Through a series of disgusting private classes and key value acrobatics, layout sources now capture all the audio of their layout and propagate it up to their audio engine 2018-03-21 10:00:23 -04:00
Zakk
5b129021c3 catchup 2018-03-20 23:41:18 -04:00
Zakk
353c5eddf8 drag and dropping layouts onto the source list now creates a layout source 2018-03-10 04:50:06 -05:00
Zakk
4d7e296a8e Sources now use restore/saveWithCoder instead of init/encodeWithCoder. This allows restoring to be a bit smarter about cached sources, replacing them transparently at restore time.
Old style initWithCoder is still functional, just not as cache friendly.
If the capture "device" is changed in the input config window the capture object may be swapped out for a different one depending on caching/flags.
2018-02-03 23:56:32 -05:00
Zakk
17c59b7fc8 Added NewTek NDI source. Requires the user to install the NewTek NDI runtime library 2018-01-20 04:35:06 -05:00
Zakk
c5a2d2a940 Changes to main window layout so it properly works in pre 10.11 releases
Call [super layout] where required to suppress warnings in 10.10
Use menuForEvent instead of rightMouseDown; menu now shows up when ctrl-clicking a single button mouse/trackpad
2017-12-24 16:47:42 -05:00
Zakk
589e3ab87c Stop drawing the source overlay view when the mouse leaves the preview view area 2017-11-11 09:15:37 -05:00
Zakk
e296f150e2 Layout source: use copy of layout and refresh when layout is saved or deleted 2017-11-09 21:43:14 -05:00
Zakk
261fdba402 Add video delay support to Layout and FFMpeg movie source 2017-11-07 23:40:16 -05:00
Zakk
d4e7404f74 Remove all 'frame update type' settings 2017-11-05 16:38:20 -05:00
Zachary Girouard
12c19f5ee5 Change the source outline view so it doesn't leak CFStrings (!?!?!) 2017-10-29 12:08:14 -04:00
Zakk
5fe311bbb2 Added capture source that renders an existing layout into the current one 2017-08-11 06:08:00 -04:00