In advanced mode codecs that are incompatible are disabled.
In simple mode codecs are disabled if recording encoders are used,
but containers are disabled when stream encoders are used.
This change introduces an accessibility menu to settings, along with
options for overriding the colors used by OBS in the mixer and in the
preview to be more color blind friendly than the options provided by the
current theme.
This change makes it so that if you select a service, it will check to
see what codecs that service supports, and only list encoders of those
codecs.
If the service doesn't support a codec and you currently have an
unsupported codec selected in output settings, then it'll prompt you
with a dialog telling the user it will switch to a supported codec, and
if they click yes, then it'll change the codec for the user. If they
click no, then it'll switch back to the previously selected service.
This feature is meant to reduce maximum audio buffering and turn off
dynamic buffering mode. This allows the lowest possible consistent
latency for audio buffering, which is useful for the decklink and NDI
outputs which cannot rely on audio timestamps for synchronization.
This can have a negative effect of making audio segments (partial or in
full) cut out. So audio glitching or audio loss can occur if this is
enabled.
Certain services have custom server lits handling which I had forgotten
about, so although it would have been nice to have this refactor, we'll
have to live with relying on the plugin properties object directly for a
while.
This also reverts obsproject/obs-studio#6530 and
obsproject/obs-studio#6683 because that change depended on this
problematic refactor code.
This reverts commits:
f2e6122881,
bc80d0ca95,
050a29da1a,
22ffc04f73,
275e510aad,
2fa5ffe4df.
This commit accomplishes three different things:
- Makes it much less difficult to communicate service settings
between the UI and the plugin.
- Refactors some code and makes it cleaner and easier to modify to our
needs (although there is still a lot of work to do on that front
because of heavy code duplication issues between auto-config and the
stream settings pane).
- Significantly reatly reduces the number of times the json file has to
be opened and parsed.
This also kind of denotes a bit of a failure on the plugin communication
aspect. The properties system is too limited and jank for a lot of
things we would like to do at times.
This commit implements a new feature to split recordings in split files
in Advanced output mode.
These basic settings are implemented.
- Enable/disable the feature. Default is disabled.
- Select a type of the limit, time or size.
- Specifies the limit in seconds or MiB.
Allows services to limit and enforce resolution and framerate values the
user can select in the UI if "ignore service recommendations" is not
checked. If the "ignore service recommendations" option is not checked,
the user will not be able to select or use a resolution and/or framerate
in the user interface that the service does not support. If "ignore
service recommendations" is checked, it will work as it normally would,
allowing any value to be used as per normal.
Fortunately, and hopefully for the foreseeable future, there is only one
service that enforces resolutions and framerates.
Allows the ability to block all the signals if resetting downscale
values, which will prevent values from triggering a widget update
unintentionally, forcing the user to have to save settings.
Moves the "Enforce streaming service bitrate" option from simple output
mode to the stream section, renames it to "Ignore streaming service
setting recommendations" (inverting it). When trying to check it, it
will now also display a message box warning the user that it's generally
a not-so-good idea.
Also displays recommended settings for the service.
Adds a VOD track option (specific to Twitch) that allows a user to
specify which audio track to use for their Twitch VODs, which uses a
separate encoder to encode the track. This allows users the ability to
choose what audio goes on their VOD, separately from the live stream.
(Jim) Allows the ability to get a link from the service's settings about
a specific service selection the user chooses and display it as a "More
Info" button that the user can click to find out more information about
that particular service.
Both BTTV and FFZ are fairly popular however they do occasionally
interfere. To give users the option to chose whichever one they like
most we add a new setting that allows BTTV, FFZ, both, or neither.
Defaults to "None" for new users. Existing users will be migrated to
"Both" as that's the previous behavior.
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed. Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
This was a feature that was available when you chose custom RTMP server;
it was not considered when making the new version. Note: it looks
unslightly, but it works for now.
Adds the ability to connect/login to an account via the settings and
auto-configuration dialogs. Checks registered Auth objects, and if the
Auth object matches the currently selected service in the settings
window or auto-configuration dialog, will display "connect account"
buttons for the user to be able to click (which are optional, they can
still use stream keys if they'd prefer).
Makes it so that services can have custom handling on a per-service
basis. The bottom part of the service pane is now a stacked widget
which can now be customized for different types of services
(particularly OAuth services).
The decay rate of the audio meters can now be selected in the audio
settings. The values are:
- "Fast" (OBS default, 40 dB / 1.7s)
- "Medium" (Type I PPM, 20 dB / 1.7s)
- "Slow" (Type II PPM, 24 dB / 2.8s)
Closesjp9000/obs-studio#1143