Commit graph

134 commits

Author SHA1 Message Date
Zakk
c5309dbac0 Convert shapes to use built in JavaScriptCore instead of python. Shape plugins are limited to operating on a provided NSBezierPath. 2017-06-07 10:34:55 -04:00
Zakk
2d1ef900dd Layout recording is controlled via output configuration window 2017-05-20 16:11:35 -04:00
Zakk
d6c0429810 Remove failed WebView source files 2017-04-09 10:53:04 -04:00
Zakk
652e4e0b80 Cleaned up init functions of some input plugins; defer heavy initialization until required 2017-04-09 10:52:28 -04:00
Zakk
d61c019ad4 Add animatable volume control to audio nodes 2017-04-09 08:51:13 -04:00
Zakk
cb094414c3 Rewrote layout merging/replacing so it doesn't call input comparison functions more than once. 2017-04-07 05:25:53 -04:00
Zakk
1ba042311d Introduced CSOpenGLLayer which handles cropping of OpenGL sources.
Vastly improved the feel of resizing and moving inputs.
Snap/magnetism improvements.
2017-02-25 20:07:47 -05:00
Zakk
6826eab507 Restored decklink self cropping, since it was needed due to weird sampling distortion in the final render 2017-02-19 22:30:20 -05:00
Zakk
29eef09f63 More work on having source bounding boxes match up better with their visual area:
InputLayers now use resizeFill content gravity; proper aspect ratio is maintained via InputLayer now.
Cropping now changes the bounds of the source to match the size after cropping. Saving/restore is broken right now.
CAOpenGLLayer based layers are no longer required to self-crop based on the contentsRect property.
Instead of using CSIOSurface layer, just assign IOSurfaces directly to CALayer.contents (seems to work even on 10.9)
2016-12-31 13:00:16 -05:00
Zakk
d2a84e24f1 Change how layout buttons work: normal click -> switch to this layout. shift-click -> merge this layout into the current one, remove it if it already is in.
Fixed up some of the layout/input merging to track input ref counts to compensate for delayed removal of inputs due to transition animations.
2016-12-13 07:50:18 -05:00
Zakk
e961853940 Fixed config UI layout issues with webcam capture.
Fixed issue with iTunes now-playing when songs were not in your library (apple cloud music)
2016-11-26 05:00:00 -05:00
Zakk
ada259ac61 Newly added sources are now auto-centered in the layout and sized according to their source size. If the input is bigger than the layout window it is resized to the layout's dimensions. 2016-11-25 12:02:45 -05:00
Zakk
36a9855b35 Added 'freeze frame' to sources; for help when cropping/adjusting video.
Corrected inversion of OpenGL layer top/bottom cropping.
2016-11-20 23:04:38 -05:00
Zakk
8eba5fa9b2 Merge branch '2.0UI' 2016-11-19 10:34:15 -05:00
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
Zachary Girouard
784c1b80e8 Settings changes for xcode7 2015-10-03 16:30:15 -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