(Note: This commits also modifies the linux-pulseaudio, mac-capture, and
win-wasapi plugins)
Do not prevent the targeted output device from being monitored if the
selected monitor output device is a different one.
Closesjp9000/obs-studio#872
This happens because the enum had the incorrect name, and microsoft
automatically treats all enums as integers in C, regardless of whether
they actually exist or not. Microsoft makes terrible compilers and
whoever decided this was a good idea should be fired.
When the windows video device source source is set to only activate when
showing, it would still activate on first startup of the program even if
it was in another scene and not showing anywhere to the user. This
fixes that issue.
The "default" preset is not an actual default, but something Nvidia
decided to just call that way. It yields the worst quality per bitrate
out of all the presets, for no actual benefits. The actual FFmpeg
default is the hq one, which yields the best quality, especially when
twopass mode is enabled.
I can't think of a way to keep the "default" preset in a non-confusing
way, and as it gives no known benefits, might as well just remove it
entirely.
(Jim edit: Also made it so that if the settings have it set to
"default", it automatically treats it as "hq")
Closesjp9000/obs-studio#865
The code to process GIF animations contains a return statement that
skiped the file modification check, if the source is not in an active
scene. Like that images in the preview scene of studio mode would never
update, when they get modified on disk.
Also reloading the image, if an animation file has been modified before
processing the old animation that will be replaced later anyway, seems
like a better way to do it.
The LGP issue is caused by the device drivers returning two or more
packets in a single segment of audio data. This fixes it by detecting
that and decoding subsequent packets.
When the FFmpeg audio decoder returns, it returns how many bytes of data
was decoded. To have it decode multiple packets in a single segment,
just subtract the return value from the expected size, and if that size
is still larger than zero, then there are more packets in the segment to
decode. Otherwise, stop.
1.4.3.9 is not an official version, it just patches a bug introduced by overusing a macro. I'm not sure if it fixes the crash in blog, but it should fix the crash in AMF initialization.