Commit graph

106 commits

Author SHA1 Message Date
Zakk
71410c620a Added support for non-h264 compressors. First addition: Apple ProRes.
Some rearrangement internally of configuration interfaces, compressor classes and how libavformat muxers are created.

Quicktime MOV muxing may still have some quirks...
2016-03-28 07:51:44 -04:00
Zakk
4952335ece Update to latest Sparkle framework
Outputs now always query the underlying stream service plugin for the destination string.
Output format is now determined by asking the stream service what format to use. Format can be forced via the stream service config dialog.
2016-02-21 22:13:58 -05:00
Zakk
e7f1e21b34 Split input source configs into an advanced tab.
Layouts are now drag and drop reorder able.
Go live button hides when only one preview view is visible
2016-02-02 09:18:13 -05:00
Zakk
d2306f8662 Animation Items now have a uuid and are refcounted/tracked just like inputs across layout merges/removes/replaces.
Start of animation UI for individual layout edits
2015-12-07 09:51:35 -05:00
Zakk
d13a237af9 1.9 imports were sometimes causing the live layout to be a reference to one of the 'normal' layouts, which broke preview/edits. Detect this condition and make a copy instead 2015-11-28 05:53:32 -05:00
Zakk
504c4f3fa7 Moved compressor configuration to output configuration dialog. All outputs MUST have a chosen compressor now. Two default compressors named "x264" and 'AppleVT" are created if they don't exist. If a "default" compressor exists it is renamed to the appropriate new default compressor.
To create new compressor "profiles" just save one of the default ones to a new name.
2015-11-23 07:55:04 -05:00
Zakk
876dd087ac Slightly rearrange how adding outputs works, WIP 2015-11-14 22:40:55 -05:00
Zakk
f6b3067ddd Start of the 'input library' feature 2015-10-23 23:15:35 -04:00
Zakk
ebac4d9a57 Added a layout edit contextual menu to layout buttons.
When a layout is set to single-source (via cmd-click) the target now inherits the resolution and frameRate of the layout. This also happens on staging->live.
Added contextual menu item for builtin staging and live layouts for changing resolution and framerate
2015-10-11 12:47:41 -04:00
Zachary Girouard
c932fda6d3 Start of new layout UI/mechanics 2015-10-04 23:09:56 -04:00
Zakk
f5e8292b04 Mouseover effects in preview views are now done via overlaying an NSView. Overlay has added: resize handle/knobs on mouseover, and a delete button.
Start of a functional undo/redo system. move, resize, delete, attach/detach, clone and add are now undoable.
2015-09-06 02:22:11 -04:00
Zakk
a16724402d Completely changed how python is handled internally. No more py2app plugins with a private copy of a bunch of python stuff. Now link directly against Python.framework. There is now an internal plugin service/api for evaluating a python file, so any plugin can implement python functionality fairly easily. 2015-08-14 22:15:39 -04:00
Zakk
5486ff8c70 Converted preview views to layer backed NSViews with CAOpenGLLayer. Resolves some weird behavior of NSOpenGLView.
Staging view is now rendered in a timing loop just like main view.
2015-08-09 15:24:17 -04:00
Zakk
30c45f1e5c Added shape 'capture' inputs, with python modules for drawing shapes/paths.
Made some changes to audio graph and audio engine: there were some hardcoded 44khz instances. Changing sample rate should work now.
Fixed an ordering issue that would sometimes cause sourceLayers to be replaced with nil
2015-07-26 09:34:25 -04:00
Zakk
7c0fe02cd9 A layout's render loop timing can now be tied to some types of capture inputs. Most useful when used on video capture cards 2015-07-12 07:04:15 -04:00
Zakk
f93f810e41 Set transition time via object controller and commitEditing when goLive is pushed 2015-06-29 06:24:12 -04:00
Zakk
857264db99 Properly extract boolean value of onLive animation setting 2015-06-19 15:29:41 -04:00
Zakk
fe7546b4f2 Added configuration option for animations to enable auto-running of an animation when a layout goes live.
Extra None/null checking in animation python source to defend against runtime errors.

Added Blackmagic SDK capture source. You can now use more than one black magic card, yay
2015-06-15 23:04:06 -04:00
Zakk
bec8aa7f90 Added save and restore of down mixer crosspoint volumes 2015-06-10 05:32:06 -04:00
Zakk
a0df4eeb58 Audio changes: all inputs are now behind a AUMatrixMixer that down mixes the input to a stereo output. The input channels are just mapped like LRLRLRLRLRLR. All crosspoint and input gains are set to max. The input's volume is controlled by setting the MatrixMixer's master gain.
There was some rearranging/cleaning up of the audio graph code so that AudioUnits are configured in the 'proper' order (no format changes after Initialization,, explicit AudioUnitInitalize calls etc).
Todo: on the fly sample rate changes, full crosspoint gain control UI.
2015-06-06 23:18:14 -04:00
Zakk
35107d7a04 Add modal dialog during MIDI control learning 2015-05-25 15:44:50 -04:00
Zakk
09e9b118d5 Added rough start to midi control 2015-05-23 20:16:30 -04:00
Zakk
2e2220564c Some changes to get things working on 10.9 and to fix up code signing with the python plugin.
Change tab index for setting status pane on stream start
2015-04-26 13:58:23 -04:00
Zakk
dfe3bdb4e1 Force a setNeedsLayout/layoutifNeeded call when constraints are set on an input layer. This seems to fix the weird constraint dimensions on restore.
Also force a layout when a source is added to an input, I'm not sure if this actually fixes the non-rendering gl layer problem, though.
2015-04-25 12:00:45 -04:00
Zakk
359d2dabfa Layout transition choices now include Core Image transition filters 2015-04-21 09:58:07 -04:00
Zakk
d1956a4c4f The glorious return of user defined filters on sources. Now with background, source-only and source-and-all-sublayers varieties. 2015-04-20 09:31:27 -04:00
Zakk
fda88af6cb Added interface for setting constraints on inputs/layers. Only applies in relation to the parent input (or the canvas). 2015-04-19 01:50:57 -04:00
Zakk
64a3c4a596 The base TextCapture class handles loading the settings interface now and inserts standard text controls (font, alignment) in addition to whatever the actual capture source requires.
Fixed the excessive amounts of blank space in source setting pane(s)
2015-04-18 21:33:48 -04:00
Zakk
0c894d8a43 Animation input list now updates properly when inputs are removed and deleted from the layout
Added a movement example animation.
Animations now have a 'source_only' keyword that only animates the underlying source layer.
2015-04-05 15:03:21 -04:00
Zakk
6dfdc0a0c6 Run animations in a background queue so badly written animations don't freeze the main UI.
Catch exceptions when running animations and NSLog() them
2015-04-04 12:12:28 -04:00
Zakk
1b6859e4fd Animations are now explicitly added to a layout, instead of showing all possible animations. Added animations and input assignments are saved and restored along with the layout. 2015-03-27 10:04:35 -04:00
Zakk
8b2510a1cc Added controls for animation of the live feed. Added 'revert' buttons for both live and staging animation controls. 2015-03-21 09:05:30 -04:00
Zakk
56d71c82f9 Added start of scriptable animations, using embedded python. Things are still a bit rough, but functional. IF YOU ARE BUILDING YOUR OWN VERSION: for private 'dev' copies, you need to run 'python setup.py py2app -A' in the 'CSAnimationRunner' directory. If you are building a 'release' version to use somewhere other than your own machine, you need to run 'python setup.py py2app' to generate a standalone bundle for the python plugin. I haven't extensively tested the standalone stuff yet, so there's a risk it's all broken right now. 2015-03-21 02:20:10 -04:00
Zakk
b28cdbc2e3 Remove various references to InputSource when it is deleted so that the dealloc happens immediately instead of when NIBs are auto-deallocated. 2015-03-09 10:36:00 -04:00
Zakk
972301c3b5 Preview views are now responsible for allocating a LayoutRenderer. Added layout change transitions. 2015-03-02 00:08:11 -05:00
Zakk
7e3cb5682e Change audio source enable button to an on/off toggle with color. 2015-02-18 05:26:06 -05:00
Zakk
96455ca5b0 Syphon source now grabs the IOSurface before receiving a frame notification, so restored Syphon Sources from 'fast' SyphonInjected processes work 2015-02-15 08:37:15 -05:00
Zakk
9d3bc56898 Actually put CocoaSplit.sdef in the repository.... 2015-02-14 17:49:33 -05:00
Zakk
97a35e8b5d Added time related sources. Current time, elapsed time from any past point in time, and a countdown to a given date/time (or just X seconds of countdown) 2015-02-08 23:16:34 -05:00
Zakk
88f9c792ad Moved some files around to corral headers into the Pluginheaders directory 2015-01-28 23:52:51 -05:00
Zakk
99a4765241 Massive update/change: Sources and rendering are now CoreAnimation (CALayer) based. Still a few broken things, but now with all the added functionality of CoreAnimation. More interesting things to come ;) 2015-01-17 09:23:02 -05:00
Zakk
433a7328d9 Added NowPlaying (generate text source based on currently playing song in iTunes or Spotify) and FileText (get text from a file) plugins 2015-01-01 20:50:21 -05:00
Zakk
2e3238ae57 Moved most of the TextCaptureSource code into the main code base, so plugins can inherit a base Text Source for more flexibility. 2014-12-31 14:10:12 -05:00
Zakk
1bdb24685d Restore ability to detach input source config windows under Yosemite 2014-12-03 19:37:43 -05:00
Zakk
2bbe224bd7 Added Hitbox StreamService plugin. 2014-12-02 19:04:01 -05:00
Zakk
cddd251e92 Default font color: white, default size: 50
Completely redid SyphonSource to use a version of Syphon.framework that exposes the IOSurface.
XIB changes for some constraints. Dumb.
2014-11-30 23:08:10 -05:00
Zakk
87aac17c6c Fixed some warnings.
PCMPlayer scheduling should work in 10.9 now. 10.10 uses the 'easy' scheduling.
2014-11-28 20:02:39 -05:00
Zakk
b68fea5869 Hide CAMultiAudioPlayer behind a 'fake' CSPcmPlayer interface. This way plugins don't need the CAMultiAudioNode header file and aren't tempted to mess with stuff in it 2014-11-25 01:17:20 -05:00
Zakk
a8e728d8e2 Plugins now have the ability to send PCM audio to the audioengine. Audio engine now does sample rate conversion for PCM inputs.
MovieCapture plugin now sends audio through AudioEngine.
2014-11-22 20:31:45 -05:00
Zakk
65243bd5ce Audio input volume continuously updates as the slider is moved. Listen for audio input device changes and update the mixer list in real time.
Changed AVCapture to output in 420f format instead of BGRA. Maybe a bit more CPU friendly.
2014-11-21 08:59:35 -05:00