Fixed timebase/fps issues with x264 encoder. I really hate timebase issues...
Get the num/den correct for x264 FPS settings
Added CBR support for new twitch guidelines. Changed frame acquisition to a timer based approach instead of 'pushed' (more consistent framerate this way)
Fixed bug with x264 swscale, things are now properly resized/scaled.
Syphon capture now ignores the broadcast resolution and captures a full frame from the server.
Fixed QTCapture source so it is less broken/"hey sorry your kernel panicked, lol"
Added advanced pref panel with one setting...
and that setting tells outputs to start dropping input frames after X frames are queued up.
Added 'dropped' column to status.
Oh, a new version of x264 too.
Update README.md
Added aspect ratio options: use source resolution as is, or preserve aspect ratio. Preserve uses width if both height and width are set, if only height is set it will use that.
Fixed some ffmpeg/avformat related crashes when RTMP authentication fails or the stream is stopped with a pile of pending frames.
Merge remote-tracking branch 'CocoaSplit-github/master'
A bunch of changes for live preview and changing video sources on the fly
Rewrite QTCapture to use C based XPC API. This allows me to pass the IOSurface with the proper XPC call rather than some dumb semaphore hack.

Sources now live-preview when selected.
Merge pull request #11 from zakk4223/live-preview

Live preview
Only set dispatch timer strict argument on 10.9 (seems to crash 10.8?)

Use new beginActivity API in 10.9 when stream starts. (Continue to use old IOKit API otherwise)
Refactored audio/video capture so audio ‘follows’ the frame it was captured with. I’m not sure if this is better, but worth a shot.
Changed PTS calculations for audio and video. The old way for audio was completely wrong and I’m shocked it ever resulted in synced audio. This fixes streaming issues with the newest TwitchTV player.
Syphon capture now auto-reconnects if the syphon server goes away and then comes back. Syphon server list also auto-changes as servers go away/appear.
Reverted ‘audio follows captured video frame’.
Stopped using a dispatch timer for the frame timer, instead using a loop and a target time to sleep until.
Don’t use libswscale to scale/pixel format convert, use VTPixelTransferSession. Seems to be faster? Maybe this should be pushed into OpenGL?
All the above combined seem to have fixed audio sync issues on twitch.
Bounce most UI editable values through an NSObjectController and call commitEditing on it at appropriate times. Turned off continuous updating for lots of fields. This should fix the ‘value doesn’t update unless you hit tab’ problem.
Added Image input type. Advanced settings panel is used to choose a directory. All images in this directory show up as sources.
Change properties on VTCompressionSession and VTPixelTransferSession to letterbox instead of stretch.
Defer captureSetup until resolution is determined on first frame arrival.
captureFPS no longer bound to videoCaptureSession.videoCaptureFPS. Which means it doesn’t reset when the source is changed.
Fixed an issue with videoCaptureSession deallocation not happening. This means the AVFoundation type will release the camera when it is no longer active.
Added internal API for saving/restoring values. Used for Image capture saving the source directory.
Audio sample rate is now a drop down.
Change AppleVTCompressor so it works on 10.8.x again. (Was using 10.9 only symbols)
Save/restore audio adjustment value
Use shaders to display proper Desktop source preview (shaders do 420v->rgb conversion)
Frame acquisition timing loop should use less CPU now (sleeps fast instead of spins in some places)
Completely rewrote audio and video acquisition. Audio is now buffered and sent along with the frame after compression. I’m not 100% sure this even matters, but it may allow more flexibility in the future.
Consolidated ‘did the stream start’ functions in the main newFrame loop, there were race conditions before that would cause outputs to not get initialized. Hopefully this squashes the ‘nothing happens when I hit stream’ bug
A bunch of other changes that I’ve probably forgotten.
Add run script to set CFBundleVersion to git revision hash. Uses PlistBuddy! HEY BUDDY