Commit graph

84 commits

Author SHA1 Message Date
Zakk
6dbca9d3ae Fix AppleVTCompressor too! 2014-08-24 17:19:54 -04:00
Zakk
c374233a59 Fix saving of compressor resolution options so ‘None’ is properly saved 2014-08-24 16:58:14 -04:00
Zakk
dfaa6bc568 Remove spurious debug output 2014-07-22 06:17:27 -04:00
Zakk
84b5552f4c Don’t modify saved width/height values when compressors are set to preserve AR/Use source.
Handle the case where x264 preset/tune values were set to NSNull from the default compressor migration.
Properly save width/height in compressors.
Fixed issue where editing a in-use compressor would replace it with a copy. Because NSDictionaryController does weird shit
2014-07-22 05:48:43 -04:00
Zakk
e4c7d074bb Fixed CFRelease/Retain mess with audio samples. Added autoreleasepool to CVDisplayLink (NSColor leaks otherwise) 2014-07-17 14:35:46 -04:00
Zakk
def01f7d84 Re-add sync wrapper around audio buffer operations 2014-07-17 12:53:58 -04:00
Zakk
c3cd151acc Move audio capture to pre-encoder call 2014-07-17 12:37:22 -04:00
Zakk
28a773f8e1 Improved CPU use of animated image sources, fixed some memory management issues too. 2014-07-15 05:26:00 -04:00
Zakk
8808ee08cf Fixed bug where changing an output’s compressor wouldn’t deregister it with the old compressor and cause two streams to be fed into one output. (which is obviously broken)
Send each compressor an instance of CapturedFrameData, since sharing them across compressors is…dumb. Maybe I should have realized this earlier…
2014-07-11 04:45:15 -04:00
Zakk
c89c38f021 Fixed incorrect method definition 2014-07-08 10:15:21 -04:00
Zakk
488e5ddae2 Migrate resolution options into the default compressor profile. Note this only works if the default compressor profile doesn’t exist. Sorry 2014-07-08 10:09:47 -04:00
Zakk
3fa85a08df Added validation to compressor saving. Will complain about resolution issues for now. Compressors have an error state if setup fails, output status of all attached outputs will switch to red. 2014-07-08 10:02:01 -04:00
Zakk
c1c8771195 Moved resolution options to compressor configuration. Default is to use the source resolution. 2014-07-04 05:43:28 -04:00
Zakk
e51a8ffeb6 Messy start of multiple encoders->multiple outputs. It more or less works but restarting streams is broken and saving isn’t implemented yet. 2014-07-03 03:29:56 -04:00
Zakk
6bf37a5261 Fixed a bunch of stuff related to compressor profiles. Like made them properly work/not break entirely for new users. Made command line version work again. 2014-06-30 20:08:10 -04:00
Zakk
dabf95b211 Fix up UI for compressor profiles. Dropdown properly selects/refreshes when changes are made 2014-06-29 22:34:27 -04:00
Zakk
23bab77df1 Get AppleVTCompressor working with new saved compressor profiles 2014-06-26 10:23:43 -04:00
Zakk
79b1f151f2 Start of converting to ‘saved profiles’ for compression. Stuff is still all broken right now. 2014-06-25 11:30:13 -04:00
Zakk
cb4a07d8ca Added delay option for outputs, fixed preview view sometimes causing fullscreen performance issues with other openGL applications. Stream warning colors. 2014-06-22 10:30:19 -04:00
Zakk
7651190c05 Status text for an output turns red if that output is in an error state 2014-06-14 21:20:17 -04:00
Zakk
c4db68d374 Log view autoscrolls, and is no longer editable. Spellcheck turned off. 2014-06-14 06:37:17 -04:00
Zakk
a7b440562e Fixed a crash that happened when an output source failed to properly avio_open (bad stream keys etc)
Redirect all stderr to a log window (finally!)
Reworked output attaching so 1) it is handled only inside of OutputDestination and 2) if you edit the destination and deactive/reactive the output, the changes are picked up.
2014-06-14 06:31:34 -04:00
Zakk
bf88767bb6 Set deployment targets for xib files to 10.8 so they don’t cause crashes 2014-06-09 21:11:51 -04:00
Zakk
f28cdd20a8 Added a ‘captureFPS’ method to CaptureController since it’s part of the protocol and the h264 encoder used it. 2014-06-09 05:46:24 -04:00
Zakk
5a1470d998 Capture FPS is now completely driven by videoCaptureSession.videoCaptureFPS. Capture Controller will change the frame acquisition rate when this value changes. The UI directly binds to this (well, via an Object Controller) giving the capture session a change to change things based on modifications to the FPS value in the UI. The only capture type that needs to do this is the desktop capture. 2014-06-09 02:29:18 -04:00
Zakk
178e38f019 Cleaned up some protocols/implementations.
Change AVFoundation available video list so it is driven by device connected/disconnected notifications. This fixes some dumb stuff with the new Blackmagic drivers.
The FPS value in the UI now changes to reflect changes in the capture source preferences (AVfoundation format/fps etc)
2014-06-09 01:40:13 -04:00
Zakk
7ef019f3f2 Expand paths when setting the ffmpeg task stream_output property. Fixes crash when using tilde in paths. 2014-05-25 19:14:21 -04:00
zakk4223
4aa95148af Merge pull request #24 from drumsoft/master
fix bug: options -audioBitrate and -audioSamplerate for CocoaSplitCmd has been disabled.
2014-05-25 18:05:24 -04:00
Zakk
6cc28b4f28 Lock CGL context in the preview rendering code, since display link renders on a non-main thread. Should resolve crashes while resizing the window.
Remove preview sync option, since it doesn’t really do anything now.
2014-05-24 13:55:04 -04:00
Zakk
2b47e363e7 Converted preview to CVDisplayLink based timing, this makes the preview display completely independent from the acquisition/compress/output loop, so less randomly dropped frames. 2014-05-14 05:17:32 -04:00
Haruka Kataoka
81771499c4 fix bug: options -audioBitrate and -audioSamplerate has been disabled. 2014-04-28 19:29:58 +09:00
Zakk
058245f1c5 Merge branch 'McZonk-master' 2014-04-15 18:32:02 -04:00
Zakk
94dd653556 Added dialog for adjusting the volume of individual input audio channels. Probably most useful with aggregate devices. 2014-04-15 18:17:48 -04:00
Max
c89cb885ca Fixed memory leak 2014-03-21 15:03:22 +01:00
Max
5ef302e11b Removed unused and leaking encoderList 2014-03-21 15:02:33 +01:00
Max
bf3f9b0726 Use literals for encoderSpec 2014-03-21 15:02:00 +01:00
Max
3ae8c0be00 Use literals for better readability 2014-03-21 14:55:46 +01:00
Max
adda6743cd Fixed memory leak in CFNumberRef 2014-03-21 14:53:58 +01:00
Max
36e369ed49 Fixed memory leak in transferSpec 2014-03-21 14:51:34 +01:00
Max
01368c3053 Fixed crash when end streaming 2014-03-20 21:35:10 +01:00
Max
15b128b697 Fixed minor memory leaking string 2014-03-20 21:24:43 +01:00
Max
e5d8360fcf Use (__bridge type) casts to share CMSampleBuffers, memory management is much cleaner and easier in this case. 2014-03-20 20:50:27 +01:00
Zakk
57974f0c62 Add run script to set CFBundleVersion to git revision hash. Uses PlistBuddy! HEY BUDDY 2014-03-06 03:21:25 -05:00
Zakk
6717490d57 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.
2014-03-06 01:32:34 -05:00
Zakk
a5862e7ae9 Change AppleVTCompressor so it works on 10.8.x again. (Was using 10.9 only symbols)
Save/restore audio adjustment value
2014-01-11 14:19:50 -05:00
Zakk
c16403d46f 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.
2013-12-30 10:01:20 -05:00
Zakk
aff7e94e9b 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.
2013-12-16 09:35:59 -05:00
Zakk
88a5b51bb3 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.
2013-12-14 10:05:25 -05:00
Zakk
3c3e3921a7 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)
2013-11-27 03:49:20 -05:00
zakk4223
cb9a12cc60 Merge pull request #11 from zakk4223/live-preview
Live preview
2013-11-24 20:41:27 -08:00