(This commit also modifies UI)
Instead of pinging Twitch every time the program starts up, only pings
for new servers when the ingests are actually being used, and when the
UI uses the auto-configuration dialog.
If ingests have not been cached when using the "Auto" server, it will
wait for 3 seconds max to query the Twitch ingest API. If it takes
longer than 3 seconds or fails, it will defer to SF. If ingests were
already cached, then it will use the existing cache immediately.
Updates ingests via Twitch's ingest API. The servers are ordered by
closest to farthest from the user via the API. It's probably still good
to keep the services.json Twitch ingests updated in case there are
issues with the Twitch ingest API, but otherwise the ingests will update
from Twitch itself every time the program is opened automatically.
The user agent for the obsproject.com ingest update request would have
the version string baked in to the plugin, so if the plugin library
wasn't updated with the rest of the project, it would return the
incorrect version. This makes sure it returns the correct version by
requesting the version string from libobs itself.
The invalid format version warning for service files is an unnecessary
warning which isn't necessary to display because it'll automatically
fall back to the distributed version over the cached remote version.
Allows the ability for services to specify a different output if needed.
NOTE: This should probably be considered temporary, and services within
this file that use this functionality should probably be moved out of
the file and in to a separate service.
Due to the recent renaming of hitbox to smashcast, old settings for
hitbox would not be shown in the service UI. This change preserves the
user's service settings even if the service name has been changed, shows
the setting and marks it as invalid to the user, and prevents the UI
from selecting a value that doesn't match the user's last selection.
Twitch added the following ingests:
- South America: Lima, Peru
- EU: Lisbon, Portugal
- South America: Medellin, Columbia
- EU: Milan, Italy
- NA: Mexico City
The following ingest server is no longer listed in hitbox' API:
- US-East: Washington
YouTube does not list a requirement that states that only the main profile can be used.