Fixes issues where the desktop device would drop and reacquire then stop providing audio due to no audio being played, causing OBS to freeze and break horribly.
Caused us no end of pain. Users clicked it so much that it made us all
snap. Now, if a user really, REALLY wants to use it, they'll have to
manually set the ini file variable in their profile ini, under [Audio],
InputDevicesForDesktopSound=1
- Add an option in game capture to use SetWindowsHookEx instead of
CreateRemoteThread to inject the library.
- Add logging of what process game capture is trying to capture.
- Rename "audio time offset" where it was used to "audio sync offset"
- Adde logging for audio sync offsets
- Update version to 0.62b test 1
If the mic device starts going crazy or needs to be reset for whatever
possible reason and you don't want to restart the stream, you can now
reset the mic by using the "Reinitialize" button in audio settings next
to the mic device drop-down. This will shut down the mic, and then
reinitialize it one second later.
Shouldn't need to be used with the newer audio code, but is provided
just in case.
- Fixed an issue where audio data that came in bursts would cause
desyncs. Basically, if data came in too late, it would continue to
buffer little by little, causing progressive desync with certain
microphones and capture devices (avermedia stream engine for the live
gamer portable especially). Also seemed to happen with HDMI data
from the newer game consoles, like xbox one apparently, though I
can't be too sure.
Now, it queries the mic and auxilary sound sources until sound
buffers are depleted. After doing so, it then "sorts" the audio
packets timestamps backwards from the most recent packet to the
oldest audio packet. By doing this, it compensates for burst, and
ensures that all audio data is seamless. New burst data coming in
will then line up properly with the older data via the sort function.
NOTE: This needs testing
1.) Audio devices initialized with WASAPI (MMDeviceAudioSource) now
properly attempt to reacquire every 2 seconds after device has been
unplugged.
This particular issue really shouldn't have taken this long to have been
resolved, please make things like this a higher priority next time (I'm
looking at you Jim. ..or, I'm looking at myself, rather)
To all users who have been afflicted by this issue for a long time, I
sincerely apologize.
2.) Made String::Compare and String::operator== and != use 'bool'
instead of BOOL for return values (this isn't the 90's anymore)
added triple buffering option to advanced settings (potentially as an optimization for some cards)
added scene buffering time option to advanced settings (mainly for sound devices)
moved "Use CBR" to encoding section, made buffer size automatically default to the same as bitrate unless "Use Custom Buffer Size" is checked
fixed cfr sync issue
fixed some major sync issues that may have been present in major version
fixed a bug with audio output timing
made mic data output more accurately as long as the qpc timestamp checks out
Made is so you can adjust mic/device audio time while streaming
updated installer script
updated some locale
got rid of audio time calculation completely