This commit fixes the issue outlined in the following thread:
https://obsproject.com/forum/threads/50045/
When the image source file was replaced by an outside process, it would
only reload when the file's new timestamp was newer than the file's
previous timestamp. This fixes that behavior. Now an image source
will reload any time the file's new timestamp is different than its
previous timestamp.
If the user hits the "stop stream" button it'll transition in to
"stopping stream..." and will continue to output until the stream
reaches the timing in which "stop" was pressed.
However, if there is significant congestion, stopping the stream can
take far longer than the user may like. So there needs to be an option
to forcibly stop the stream in that case; pushing the "stop" button a
second time should allow the user to tell the stream/recording to stop
right away instead of waiting for the precise stop timing.
Allow outputs to force a stop even when already in the process of
stopping. If for example a stream is heavily congested and taking a
very long time to stop, this allows frontends to give the users the
option to forcibly stop the stream to make it stop as quickly as
possible.
- Checks for previous instances by using the FindProcDLL NSIS plugin
- No longer allows ignoring if there is a sharing violation.
- Added version information section to allow friendly description in
the UAC elevation prompt.
- Kill lingering instances of cef-bootstrap before installing.
This allows using the functions via Qt message queue. The reason for
this is so a frontend API can queue these functions to call safely from
another thread.
Allows getting the current active framerate that the core is rendering
with. This takes in to account any rendering lag or stalls that may be
occurring.
Fixes an issue where the shutdown separator in the log file would always
appear even when the user decides not to shut down the program after
clicking close when still streaming/recording.
libvlc_media_new_path implies a file. To get media based upon URLs, use
libvlc_media_new_location. Additionally, if using a URL, it's best to
give it some playback caching/buffering, at least 100 milliseconds.
Closesjp9000/obs-studio#590
Outputting a human-readable error message on library load failure makes
it a little bit easier for plugin developers to determine why a plugin
library may have failed to load (such as missing dependency), rather
than having to look up the error code each time.
Closesjp9000/obs-studio#596
Previously, for an unknown reason p-frames were marked as highest
priority along with i-frames (keyframes), which means they could not be
dropped. This would cause a problem where if for whatever reason
there's too much congestion, data would continually buffer. This fixes
the issue by dropping p-frames at a separate (higher) threshold than
b-frames.
P-frames were initially set as highest priority to prevent them from
being dropped (not sure what the rationale was behind this), but this
caused a problem where if there's too much congestion for whatever
reason data will continue to stay buffered, so to prevent this p-frames
should be droppable.