If using the elgato 1.x.x filter it would not properly set resolution
changes due to intermediary filters. Change to direct connect to
prevent that issue from occurring.
The resolution changes can really cause confusion when updating, so if
the source is an elgato, just always reset the filter to ensure the
resolution changes.
Managed to make it so that the elgatos can change resolutions without
necessarily having to replace the entire subsystem. I almost didn't
think this was doable but I made a workaround to be able to do so.
- 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
- 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
Ensure that the DirectShow texture actually ends up being the red 32x32
texture rather than cx and cy somehow getting set to 1.#INF when
SetFormat fails.
Added an option to use the old WaveOut audio renderer setting for
capture devices to avoid audio desynch over long broadcasts. This only
affects capture device audio being output to desktop, direct stream
output is unaffected, caveats are the same as back in the olden days:
Adjusting sound volume for the capture device changes the volume slider
for OBS' system process, can only have one WaveOut output source per
scene.
Added some additional functionality in order to prevent capture devices
added as global sources to play audio across all scenes, regardless of
if that global source was present on the current scene or not.
Added deinterlacing modes:
- Blend (GPU)
- Linear (GPU)
- Yadif (GPU)
each with source framerate and double source framerate mode.
Also added GPU based Retro deinterlacing
Allow user to select between image smoothing (type
1/deinterlace_Discard) and sharp pixels (type
2/deinterlace_Discard_Sharp, mostly suitable for low resolution stuff).
Can currently only be toggled by directly editing scenes.xconfig, has
not been tested with 12-bit color devices, because I do not have any at
my disposal.