Commit graph

119 commits

Author SHA1 Message Date
Zakk
0a471611bc Add Rectangle shape type 2016-08-14 07:01:43 -04:00
Zakk
4ead205d8b Add a CALayer based audio level meter that is usable either vertically or horizontally.
Add stream audio controls to main Video tab, with a button that opens up the audio mixer/settings in a new window
2016-08-06 21:52:01 -04:00
Zakk
bd17b49612 Allow/cleanup manual adding of Movie source strings (paths or network urls) 2016-06-27 06:04:35 -04:00
Zakk
41f3c337ab Renamed FFMPeg to 'Movie' and the old movie to 'AppleMovie' 2016-06-27 04:35:17 -04:00
Zakk
4c7bdb9cce Added start of ffmpeg based movie source. A/V sync is slightly off after seeking, nothing saves and it doesn't quite have the repeat/pause controls of the previous Movie source. WIP. 2016-06-20 05:38:56 -04:00
Zakk
ac7fd008bf Restore use of gcd queue for operating on PCM player buffers.
Fix typo in InputSource that prevented some key paths from being set
2016-05-30 12:00:36 -04:00
Zakk
9add1f7ff3 Black magic Decklink source now properly honors crop settings 2016-05-30 08:29:31 -04:00
Zakk
2369583d8d Use UUID reference for add input undo, preventing infinite InputSource retain.
Start of better UI for inputs
Some UI changes to fall in line with apple HIG
2016-05-08 06:20:20 -04:00
Zakk
80f35176ba Move sample animations to Resources directory, fixes a code signing issue.
Bump version to 2.0.6
2016-05-05 07:43:22 -04:00
Zakk
7ebec18edd Fix movie source warning about a very small timebase. May have fixed some instances of blank/black movie inputs.
Change all the video and audio timescales to be more friendly to various containers. Still requires extensive AV sync/drift testing.
2016-03-30 04:01:02 -04:00
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
f22efcdbb5 Image and window captures now set magnification and minification filters on the CALayer.
Fixed save/restore of Window Capture plugin (wasn't saving captureFPS)
2015-11-29 07:17:22 -05:00
Zakk
239743fbb5 Combined status and output tabs 2015-11-15 18:24:34 -05:00
Zakk
2749544f71 Added some capture type icons for the library. Library now filterable/searchable 2015-10-25 20:39:10 -04:00
Zakk
49ad6bb24f Hi? 2015-10-05 05:00:24 -04:00
Zakk
cb356f9556 movie source properly deregisters observers when the movie queue is empty due to a movie playing until the end.
shift-selecting a layout will no longer re-add the same sources to the target layout. If they already exist they are reverted to the state of the source layout. shift-adding is undoable now.

Added an auto fit "+" button to sources.
2015-09-13 23:33:26 -04:00
Zakk
87ec750d00 Added background loading of python classes. Nothing uses it of course... 2015-08-29 14:06:31 -04:00
Zakk
6e05be0634 Use thread local storage to store CSAnimationBlock frame data.
Revert setting staging/live layouts in background queues, need to re-think how to do that (of if it is even worth it)
2015-08-29 06:04:37 -04:00
Zakk
2529712e38 Fixed some warnings.
Layout transitions fixed again: don't set to active = NO until transition is finished, keep sending frameTick to 'old' layout until transition is done.
2015-08-24 06:25:39 -04:00
Zakk
896496daa2 Added exception handling for shape capture callouts to python 2015-08-24 00:43:21 -04:00
Zakk
a537a65b71 Added an arc shape, for half circle sort of things.
Fixed 'always display' being broken for the main input of a multi-input set
2015-08-23 22:05:25 -04:00
Zakk
ffcd885998 Added captureName changes for all capture types 2015-08-22 14:01:35 -04:00
Zakk
2a2553f1c6 Python class loader now loads each class in a separate namespace/global dict
Preview OpenGL layer holds onto the rendered CVPixelBuffer until the next render.

Fixed up some more audio stuff.
2015-08-22 12:31:52 -04:00
Zakk
1c8d99a4c7 Properly guard access to a layout's sourceList so that constant frameTick doesn't keep some objects alive. Seemed to only happen on program launch...
Fixed potential ioSurface reuse/garbage in preview views.
2015-08-18 00:56:46 -04:00
Zakk
30ae53ffb4 CSIOSurfaceLayer keeps track of asynchronous toggles and delays changing it for a few frames. This is an ugly hack that stops some openGL layers from just...not displaying on restore. I hate it but I have no idea otherwise... 2015-08-17 01:28:44 -04:00
Zakk
beb3e9cd6a Bounce Display capture update layer through main thread.
DisplayCapture now properly saves the value of the render type variable
2015-08-16 14:43:56 -04:00
Zakk
bf71c90f2c Make the default shape color white, so it works properly as a mask layer without fiddling with colors 2015-08-15 00:56:28 -04:00
Zakk
6231b4d340 Modified python shape scripts so they are compatible with 10.9 2015-08-15 00:54:40 -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
fcf56805cf Added x/y flip options for shapes. Also added rotation. It's easier to rotate the shape directly than to rotate the layer and try to pin it using constraints.
Did a little bit of re-structuring of the shape python bits.
2015-08-02 08:14:45 -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
04bf7f3397 Added ability to exclude a source from multi-source transitions. 2015-07-19 14:36:33 -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
a2e1d22b3f Added repeat controls for MovieSource 2015-07-08 05:58:44 -04:00
Zakk
924b912fc2 Properly manage movie player audio tap so that the MovieCapture object isn't deallocated until the tap is finalized. Fixes crash when going live when a movie input is active in the live layout 2015-07-06 07:51:55 -04:00
Zakk
7f42d0661d MovieSource uses pre-effect audio tap instead of post-effect audio tap. For some reason in 10.10 it results in audio glitches 2015-07-06 04:56:57 -04:00
Zakk
f8b98d054c Bump version to 1.9.10, include MIKMIDI copyright/license 2015-07-01 09:01:58 -04:00
Zakk
2a3b01ecd9 When deactivating a layout, clear the animation list and selected animation to release any referenced inputsources 2015-06-30 08:18:31 -04:00
Zakk
10562a2a5a Remove source dropdown on input types where it is not appropriate 2015-06-20 08:44:22 -04:00
Zakk
857264db99 Properly extract boolean value of onLive animation setting 2015-06-19 15:29:41 -04:00
Zakk
3e1f9818d6 Save and restore black magic input setting 2015-06-18 22:07:16 -04:00
Zakk
695c9acd18 Black magic Decklink input can change the input port directly 2015-06-18 08:24:25 -04:00
Zakk
94cf7e5827 DeckLink remove device changed to compare deckLink pointer value and not unique ID. 2015-06-18 05:18:32 -04:00
Zakk
b4d0aee675 Wrapper class for managing IDeckLink objects. Added support for device removal.
AbstractCaptureDevice now declares the captureDevice as a strong property
2015-06-17 23:03:37 -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
35107d7a04 Add modal dialog during MIDI control learning 2015-05-25 15:44:50 -04:00
Zakk
8703a2a323 IOSurfaceLayer no longer uses CIImage to render to the context; instead it renders the surface manually and uses fragment shaders/built in apple extensions to handle non-RGB IOSurfaces. Sources that use this layer no longer have to convert to 'known' pixel formats, which should save on some CPU in the case of AVF captures 2015-05-09 20:53:19 -04:00
Zakk
cfb5fe4f6b Removed some spammy NSLogs 2015-05-03 13:09:25 -04:00
Zakk
7207216942 Fixed exception that occurred when the saved WebCam source is no longer connected to the system 2015-04-29 19:24:05 -04:00