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
Display capture no longer uses deprecated IOPort functions, now iterates over the IOServices and finds the display via serial number.
Display capture now uses CGDisplay services UUID to identify displays.
Improve the feel of Desktop Capture's crop overlay window. (Don't implement resizing and moving manually, let system do them)
Desktop capture no longer destroys+recreates the display stream multiple times when the cropping region is changed.
Desktop capture 'reset crop region' button now works...
Fixed some warnings.
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
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.
Live view ignores pinned input status and just replaces entire layout like it should
If a cached source has the allowDedup flag set to false when it is retrieved from cache, it is evicted from the cache and replaced with the 'new' object
Introduced a 'uniqueIdfrompasteboard'; if implemented this allows the caching system to use a cached source on drag+drop
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)
Some rearrangement internally of configuration interfaces, compressor classes and how libavformat muxers are created.
Quicktime MOV muxing may still have some quirks...
Layout transitions fixed again: don't set to active = NO until transition is finished, keep sending frameTick to 'old' layout until transition is done.