Commit graph

1220 commits

Author SHA1 Message Date
Zakk
384161c891 Version 2.1.14 2020-05-25 19:17:30 -04:00
Zakk
787da4129d Update CSVirtualCamera output settings view to display a link to installer if it is not installed.
Don't use hardcoded test camera UID
2020-05-25 18:46:54 -04:00
Zakk
5c331e0513 Update some text in Virtual camera UI 2020-05-23 03:27:23 -04:00
Zakk
2a2aa7eb91 Added plugin API for outputting sound to an audio device, using a simple CAAudioGraph
Virtual camera output uses above API to output the layout's audio to a user selected system audio device
2020-05-22 05:08:11 -04:00
Zakk
4a79eb3d54 Send layout along with LayoutDeleted notification instead of CaptureController (!?) 2020-05-18 01:40:12 -04:00
Zakk
474929e089 Virtual camera output now has configurable pixel format
Update to latest camera SDK
2020-05-18 01:15:36 -04:00
Zakk
040e339bca Add save/restore settings to Virtual Camera output 2020-05-17 04:00:37 -04:00
Zakk
62972f1dfb Fixed dumb bug that was causing metal rendering to be disabled.
Pass output layout name to Stream service plugins so they can potentially use it for naming etc.
More work on Virtual Camera output
Add more pixel formats to Passthrough compressor
2020-05-17 03:28:31 -04:00
Zakk
970bea7db2 Drop frames if the compressor queue gets too deep (hardcoded to 10 frames, may make it dynamic later?)
Re-enable proper restoration of audio input source settings (oops)
Clear layout source list if a layout recording is stopped and there is no longer a recorder attached to the layout
Fix OAuth request percent encoding for auth codes
Don't change ffmpeg input source size on input file swap
Uninit audio unit with setting input stream format
Start of virtual camera plugin (soooooon). Disabled for now
Update Youtube output plugin
2020-05-15 00:11:52 -04:00
Zakk
e97f224814 Add buffer_draining property to TimeOutputBuffer to prevent unknown message runtime exception
When a layout recording is stopped, only clear the source list if there is no longer a layout recorder attached to the layout
2020-04-26 07:13:01 -04:00
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
768c139d36 Initialize WKWebView on main thread since apparently it can't be initialized on background threads at all 2020-04-17 19:18:48 -04:00
Zakk
db39e676f3 File input always creates attributed text even if the file is plain text. Stops File input from clearing attributed text and then setting plain text, which caused double layer updates per cycle, one with a blank/nil value 2020-04-17 17:59:24 -04:00
Zakk
e380430968 Set layer delegate when image path changes. 2020-04-13 20:24:50 -04:00
Zakk
f13e2d46d8 Remote test/random?!? colorspace in AVcapture 2020-04-13 19:50:39 -04:00
Zakk
01479aca32 Add Start/Stop recording scripting event.
Don't call queue err_send function in ffmpeg  closeMedia, let the consumer loop do that
2020-04-12 15:33:41 -04:00
Zakk
ae02cd7d16 Add random repeat option to ffmpeg movie player
Fix pause/play state tracking bugs in ffmpeg movie player config dialog.
Properly reset the "is_ready" flag when closing a ffmpeg movie item
Fix potential div0 error in Downmixer
Provide default needsSetup method for compressors
2020-04-11 18:22:17 -04:00
Zakk
55c111f92e Use CIImage.CGImage to get bitmap data instead of rendering into a transient CIContext
On 10.15 use a CIColorCubeWithColorspace and use generic device RGB space
2020-04-10 03:42:52 -04:00
Zakk
d9715fd5c7 Bump version 2.1.13 2020-04-09 19:50:23 -04:00
Zakk
16564b3780 Use a single queue for all text file/file watch operations. Prevents different async queues from running over one another 2020-04-09 19:13:58 -04:00
Zakk
3615c209ef Add LUT CIFilter 2020-04-09 18:25:01 -04:00
Zakk
c5bbb1b48a Convert all compressors to use a producer/consumer thread model (VTCompressionSessions sometimes block!)
When restoring an NDI source, asynchronously wait for the stored source name to appear on the network; the underlying framework doesn't populate the available list immediately on program start.
Don't double-restore live layout on launch.
If a input is designated as 'allowDedup' do not cache it unless the user explicitly checks the cache setting to on
2020-04-07 18:26:13 -04:00
Zakk
b4ad6f56d0 Add channel layout to formats used to create PCM players from plugins 2020-03-02 00:52:27 -05:00
Zakk
a1414f249f Downmixer no longer does audio unit uniit/reinit on input format change; base node class handles that now.
When a PCMPlayer input is disconnected, stop the pending buffer timer from firing and drain the pending queue.
2020-03-01 23:16:27 -05:00
Zakk
387972bc12 Cleanup some unused variables 2020-03-01 20:12:27 -05:00
Zakk
59676688ff Add tooltip to sample rate dropdown 2020-03-01 02:49:53 -05:00
Zakk
d9f5bff5fe Always uninitialize nodes when doing connections.
Guard some graph functions with @synchronized()

Changing sample rate doesn't rebuild the graph; now requires a restart. (Can't reliably be done with encoders/streams active)
2020-03-01 00:40:01 -05:00
Zakk
d14db2b8f0 Restore audio inputs from save 2020-02-29 18:40:05 -05:00
Zakk
92546d324b Matrix detail view now shows input audio levels for each input channel 2020-02-24 18:44:08 -05:00
Zakk
d1ffac94ec Fix base audio node class not setting effectsHead and headNode after creation (fixes effect chain addition to stream output).
Change audio metering yet again.........
Uninit/reInit effects and down mixer nodes when input/output formats are set. Without doing this connecting non-stereo inputs fails. It's possible to be smarter about this by comparing the channel counts, but that's probably not worth it?
2020-02-24 01:53:36 -05:00
Zakk
8cbac8a54a Layoutrecorders now add audio tracks to their map dynamically as they are created. This fixes the main layout recorder not seeing new tracks since it is active from program start now. 2020-02-23 23:18:40 -05:00
Zakk
805fef9159 Add support for asynchronous out-of-process loading of AuV3 extensions 2020-02-23 01:01:33 -05:00
Zakk
639c53003c Remove dependency on AUGraph API 2020-02-22 23:33:49 -05:00
Zakk
1e966d5730 Properly return inputFormat for file input.
No longer rely on AUGraphInteractions to find next input/output elements, use CAMultiAudioGraph connection info
2020-02-22 21:22:36 -05:00
Zakk
f2c879b99b Change order and method of build effect chains for inputs: input -> converter -> delayX5 -> effects -> downmixer 2020-02-22 03:13:05 -05:00
Zakk
6931cc3aa2 Convert PCM player free loop to a background dispatch_timer
Track input->outputTrack associations via a custom object.
More cleanup
2020-02-22 02:06:27 -05:00
Zakk
3d2c0d2fd8 FFMpeg movie player uses AVAudioFormat internally.
FFMpeg movie player now resamples audio to 44.1khz (likely more common than 48khz)
Fixed inability to set inputFormat property on CAMultiAudioInput
2020-02-21 19:27:14 -05: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
4226e7facc Update TPCircularBuffer to get rid of deprecation warnings
Fix some warnings
2020-02-03 03:24:09 -05:00
Zakk
200611c911 version 2.1.12 2020-01-22 17:01:39 -05:00
Zakk
e4568c6126 Fix typo in Debug menu target method name 2020-01-22 17:01:01 -05:00
Zakk
4ef4b269ef Always commit the CATransaction when bailing out of the open GL renderer 2020-01-22 16:57:47 -05:00
Zakk
c1662f957a Update sparkle for notarization 2020-01-20 18:15:20 -05:00
Zakk
ec9e3ab52c Limit window capture sources to desktop windows (no menu bar elements etc) 2019-12-18 11:17:17 -05:00
Zakk
bc386b2828 Bump to version 2.1.11 2019-12-09 04:42:20 -05:00
Zakk
690b5bbc29 Change stream/record button enable logic: stream button is active if ANY output is flagged stream, not if any output is EXCLUSIVELY stream enabled 2019-12-09 04:34:37 -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
07b26b99ea Let VTCompressionSession do the pixel transfer so it happens on a background thread instead of during the main render/recorder loop
Properly flag keyFrames from VTCompressionSession
2019-11-03 06:25:10 -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