The ID for the services configs are mostly for backward compatibility
due to design flaws with the config files where the config files would
use indexes rather than using actual name values. They aren't actually
equal to the indexes of the list box.
3rd party service.xconfigs are located in %AppDataPath%/services
(e.g. %APPDATA%/OBS/services in non-portable mode) and have the same
format as a single service definition in services.xconfig without the id
field, e.g.:
"My Service" : {
servers : {
Primary : "rtmp://live.example.org/live"
Secondary : "rtmp://live.example.com/live"
}
recommended : {
"max bitrate" : 1337
}
}
This moves all hotkeys that were accessible in the audio/publish
settings panes to a new hotkeys settings pane
Also makes the push to talk hotkeys behave like all other (settings)
hotkeys, i.e. as long as a hotkey is configured the hotkey is active
ConfigFile doesn't distinguish between non-existent keys and keys with
an empty (string) value; therefore we default to treating an empty
SavePath as default save path (and warn the user when setting an empty
SavePath)
Recording is now always enabled (unless previewing)
This changes the semantics of SaveToFile from "disable all file output
when disabled" to "automatically save stream to file when enabled",
which allows the "Start Recording" button to be enabled even when
SaveToFile is disabled.
Having the "Start Recording" button enabled now depends on having a
non-empty SavePath
This includes "optimizations" for almost all publish warnings; the aspect ratio
warning is not fixed because trying to fix that has wider repercussions for
scene/source layout/positioning and potentially even required bitrate
A possible future "optimization" to fix the aspect ratio warning would be to
compute a number of possible choices based on the current downscale setting with
a target output resolution of 480p/540p/720p/etc. and let the user select one of
the resulting base resolutions
Currently only handles the vanilla OBS case of two possible codecs, i.e.
it won't list multiple listed supported codecs as alternatives in the
warning message; also doesn't verify that the listed codecs are actually
available in OBS
Other than that it supports multiple "supported audio codec" entries
in services.xconfig per service, in case anyone wants to white list
both MP3 and AAC for their service:
```
recommended : {
"supported audio codec" : "MP3"
"supported audio codec" : "AAC"
}
```
Properly hide the "Keep recording" checkbox when switching to file
output only, update the Start Streaming/Start Recording buttons when
switching modes in the settings.
Move the keep recording setting from global.ini to Broadcast Settings
(profile dependent), make it default to off, comment out the old
dashboard link code for now.