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.