73 Commits

Author SHA1 Message Date
tytan652
96eb14af47 rtmp-services: Add fallback to H264 if no supported codec found 2022-08-02 09:41:32 -07:00
tytan652
0283fd2c71 rtmp-services: Fix incompatible-pointer-types warnings 2022-08-02 09:41:32 -07:00
jp9000
8a698e863d libobs: Add func to get supported service codecs
Allows a service to return a list of codecs that are currently supported
2022-07-26 09:23:35 -07:00
Richard Stanway
174e91f211
rtmp-services: Avoid calling bmemdup on NULL resolution list 2022-07-18 23:12:49 +02:00
Ryan Foster
97e1d6ebf1 rtmp-services: Add stream key link URLs
This commit adds the stream key link URLs to services that have them
from UI/window-basic-auto-config.cpp and
UI/window-basic-settings-stream.cpp. This will enable querying these
values from services.json and remove service-specific code from UI code.
2021-08-16 09:48:14 -07:00
jp9000
f0ab940282 rtmp-services: Fix comparison mismatch warning 2021-08-10 23:30:03 -07:00
jp9000
16a49eb10d rtmp-services: Fix implicit function declaration 2021-07-02 07:26:37 -07:00
jp9000
0c8d19147e rtmp-services: Implement bitrate matrix
The bitrate matrix allows specifying maximum bitrate values based upon
resolution and framerate values. This allows more fine-tuned enforcement
of bitrate to prevent users from setting a bitrate that is less ideal
for their particular framerate and resolution combination.
2021-07-02 07:04:24 -07:00
Faeez Kadiri
85334d562f rtmp-services: Add Dacast 2021-03-21 22:44:02 -07:00
jp9000
6afb6d9c9f rtmp-services: Move service-specific files
Cleans up the directory a bit
2021-03-21 02:46:01 -07:00
jp9000
ebbe8d1bf9 libobs: Change service max res. to res. list
(This commit also modifies rtmp-services and UI)

Changes the maximum resolution size to a resolution list, and splits the
maximum FPS to its own function.

(Note: ABI has not been modified because the last changes still haven't
been released yet, so it's safe to modify this as long as the changes
haven't been officially released)
2020-11-13 18:22:53 -08:00
jp9000
fb7747c56e libobs: Implement obs_service func to get max bitrates
(This commit also modifies rtmp-services)

Implements obs_service_get_max_bitrate, which allows retrieving the
maximum audio/video bitrates directly rather than being forced to use
the apply method. Makes it a bit easier to get the bitrate values.
2020-11-11 09:42:26 -08:00
jpark37
0cf7af35fe rtmp-services: Add missing int cast 2020-11-04 04:45:07 -08:00
jp9000
000806fe81 rtmp-services: Add specifiable max cx/cy/fps in json 2020-10-30 00:28:44 -07:00
Maya Venkatraman
41f4a0b0b9 UI: Add support for "More Info" link from service
(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.
2020-10-13 13:29:17 -07:00
SCG82
0481873ef9 rtmp-services: Set actual integer value of bframes in services 2020-10-02 04:31:26 -07:00
Toasterapp
80547455ca rtmp-services: Add SHOWROOM 2020-09-08 15:29:03 -07:00
jp9000
af09057395 libobs: Deprecate service multitrack check
This isn't particularly needed, as a service with multiple tracks won't
be using multiple tracks to begin with anyway.  This might change later,
but for now just mark it deprecated.
2020-09-07 13:38:38 -07:00
jp9000
189fc7ab6a obs-outputs: Add support for metadata-based multitrack 2020-08-22 08:27:58 -07:00
dgeibi
238a44333b rtmp-services: Add Nimo TV auto server 2020-07-28 11:55:18 +08:00
Rodney
dc0af42f1b
Merge pull request #3091 from derrod/remove-mixer
UI/CI/rtmp-services: Remove Mixer
2020-07-24 20:17:38 +02:00
derrod
b8f91cc4c3 rtmp-services: Remove Mixer servers and checks 2020-07-22 07:47:12 +02:00
jp9000
ae29ec5239 rtmp-services: Fix memory leak 2020-07-19 22:06:34 -07:00
Jim
0f8472e8a8
Merge pull request #1914 from YouNow/master
rtmp-services: Add YouNow service and implement ingest lookup
2019-11-13 08:41:13 -08:00
Kurt Kartaltepe
d9470770a0 rtmp-services: Type check apply_encoder_settings
This fixes ovewritting hidden "profile" setting in ffmpeg vaapi which is
a number and not a string. It also shouldnt be overwritten as it is
required on some AMD hardware for the encoder to work.
2019-11-06 20:10:19 -08:00
Roman Sivriver
64d90c28c8 rtmp-services: Add YouNow service and implement ingest lookup 2019-10-30 13:16:13 -04:00
Richard Stanway
37d8cb3307
rtmp-services: Remove redundant null checks
The jansson json_ macros already include a null check.
2019-07-21 20:50:22 +02:00
jp9000
f53df7da64 clang-format: Apply formatting
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.
2019-06-23 23:49:10 -07:00
jp9000
d7e80f87e7 rtmp-services: Allow seamless service renaming
Allows the ability for services to specify alternate or old names that
they used to have in the json service list so they can safely be renamed
seamlessly and use the proper service settings.  This way, if a user is
using an older service in their configuration, it can still detect which
service it's supposed to be using and apply those service-specific
settings for that user.
2018-12-03 07:41:50 -08:00
jp9000
47d0423384 rtmp-services: Only do URL check for Facebook
Prevents services with special exception services from unintentionally
using the wrong server.  There's no real reason to be doing this on
anything but Facebook at the moment anyway.
2018-08-26 12:26:17 -07:00
jp9000
a69f72654e rtmp-services: Do not check for valid URL if using "auto"
"Auto" is sort of a special use-case for certain services
(Twitch/Mixer), and the code recently added in be8ddc06a would
unintentionally override it.  This would for example cause the "Auto"
setting on Twitch to set the user to use an Asia server unintentionally
because "auto" is not in the json file.
2018-08-14 13:12:39 -07:00
Richard Stanway
8fdbf60228
rtmp-services: Remove unnecessary null check 2018-08-11 02:54:50 +02:00
jp9000
be8ddc06a2 rtmp-services: Ensure set URL exists within server list
If the user had a valid service selected, but the server that the user
originally was using is now (for whatever reason) no longer listed, the
rtmp-common service would still use that server rather than any of the
newer servers, and the user would have to physically go in to their
settings to reconfigure to get it to use that new server.

Instead, make sure that the server the user has selected exists within
the server list, and if it doesn't, use the first server in the list
instead by default.
2018-08-05 18:50:13 -07:00
jp9000
48a5f0e51a rtmp-services: Don't show "service not found" if name empty
Fixes an issue where the log could have "Could not find service" with an
empty service name when opening properties.
2017-10-15 05:26:11 -07:00
jp9000
d768717b8c rtmp-services: Only update Twitch ingests when necessary
(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.
2017-10-09 10:10:59 -07:00
jp9000
9add73f656 rtmp-services: Remove Twtich "Auto" if API down and not cached
Prevents new users from having a poor user experience if the Twitch API
for getting the closest servers is currently down.
2017-08-02 15:13:09 -07:00
jp9000
2b2956ae98 rtmp-services: Add "Auto" server option for Twitch
Automatically selects the server closest to the user based upon the
Twitch ingest API.
2017-08-01 02:50:26 -07:00
jp9000
435e251809 rtmp-services: Add Twitch ingest update API
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.
2017-08-01 02:50:26 -07:00
Quinn Damerell
535f4a7fcf rtmp-services: Add Mixer FTL service
Adds "Mixer FTL" service and renames the original service with RTMP
servers to "Mixer RTMP".

Closes jp9000/obs-studio#980
2017-08-01 02:27:34 -07:00
jp9000
d68eff6bf6 rtmp-services: Fix incorrect RTMP output ID 2017-07-17 16:44:42 -07:00
jp9000
6b66630198 rmtp-services: Don't display warning for invalid file ver.
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.
2017-07-14 12:44:12 -07:00
jp9000
4d1672719f rtmp-services: Allow services to override bframe count 2017-07-14 12:39:59 -07:00
jp9000
339a0686f6 rtmp-services: Add ability to specify different outputs
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.
2017-07-14 12:39:20 -07:00
jp9000
13c59ef18c rtmp-services: Preserve settings if service renamed
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.
2017-05-19 01:19:53 -07:00
jp9000
ba47bcafc8 Revert "rtmp-services: Add ability to specify tune param"
This reverts commit 4b0f22d05a41680c1406efcc4078eac23cf79ca4.

Services should not force tunes.
2016-09-19 17:57:59 -07:00
Andrei Nistor
4b0f22d05a rtmp-services: Add ability to specify tune param
Some services need to set up tune=zerolatency
for low-latency streaming
2016-09-19 07:04:41 -07:00
jp9000
2801cf0f37 rtmp-common: Use "rate_control" to set CBR mode
Instead of using "cbr" to set the rate control mode for encoders (which
is now considered deprecated for all encoders), set "rate_control" to
"CBR".
2016-05-11 13:12:32 -07:00
jp9000
87810bcf1a rtmp-services: Add the ability to specify custom x264 opts
Certain services may request certain x264-specific options (such as
scenecut=0 to prevent additional keyframes from being generated)
2016-04-09 23:34:16 -07:00
jp9000
6285a47726 (API Change) libobs: Pass type data to get_name callbacks
API changed from:
obs_source_info::get_name(void)
obs_output_info::get_name(void)
obs_encoder_info::get_name(void)
obs_service_info::get_name(void)

API changed to:
obs_source_info::get_name(void *type_data)
obs_output_info::get_name(void *type_data)
obs_encoder_info::get_name(void *type_data)
obs_service_info::get_name(void *type_data)

This allows the type data to be used when getting the name of the
object (useful for plugin wrappers primarily).

NOTE: Though a parameter was added, this is backward-compatible with
older plugins due to calling convention.  The new parameter will simply
be ignored by older plugins, and the stack (if used) will be cleaned up
by the caller.
2015-09-16 09:21:12 -07:00
jp9000
68d2dab6fd rtmp-services: Use cached services.json if present
This will use the services.json file present in the cache, or if it has
the wrong format version or is corrupted for whatever reason, uses the
local version instead.

Also a minor refactor, makes it so that you call the open_services_file
function to get the services array, rather than having to get the file
name each time.
2015-08-19 16:21:58 -07:00