0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

libobs: Deprecate obs_get_transition_by_[name|uuid]

obs_get_transition_by_name is very problematic because transitions are
always private and their names aren't unique. This means that the method
iterates over all private sources and then takes the first that both is
a transition and matches the name we're looking for. However, this could
be from anywhere - it could be a frontend transition, but also a source
transition, quick transition, or even one from third-party plugins. This
is always never what is intended.

As such, this method (which should never have been added in the first
place) needs to go. In its place, obs_frontend_get_transitions returns a
list of all frontend transitions (which is usually what people are
looking for), and alternatively obs_get_source_by_uuid also provides
access to private sources.

While we're at it, obs_get_transition_by_uuid is basically a wrapper for
obs_get_source_by_uuid and not really necessary. UUID's are unique and
a source doesn't suddenly change its type, so if you have a transition's
UUID you can be pretty sure that when you do obs_get_source_by_uuid, it
will still be a transition.
This commit is contained in:
gxalpha 2024-08-28 02:23:36 +02:00
parent 8251005ad3
commit 5863da55ac
No known key found for this signature in database
GPG Key ID: 470184116E317811
2 changed files with 10 additions and 2 deletions

View File

@ -351,6 +351,9 @@ Libobs Objects
Increments the source reference counter, use
:c:func:`obs_source_release()` to release it when complete.
.. deprecated:: 31.0
Use :c:func:`obs_frontend_get_transitions` from the Frontend API or :c:func:`obs_get_source_by_uuid` instead.
---------------------
.. function:: obs_source_t *obs_get_transition_by_uuid(const char *uuid)
@ -362,6 +365,9 @@ Libobs Objects
.. versionadded:: 29.1
.. deprecated:: 31.0
Use :c:func:`obs_get_source_by_uuid` instead.
---------------------
.. function:: obs_scene_t *obs_get_scene_by_name(const char *name)

View File

@ -716,10 +716,12 @@ EXPORT obs_source_t *obs_get_source_by_name(const char *name);
EXPORT obs_source_t *obs_get_source_by_uuid(const char *uuid);
/** Get a transition source by its name. */
EXPORT obs_source_t *obs_get_transition_by_name(const char *name);
OBS_DEPRECATED EXPORT obs_source_t *
obs_get_transition_by_name(const char *name);
/** Get a transition source by its UUID. */
EXPORT obs_source_t *obs_get_transition_by_uuid(const char *uuid);
OBS_DEPRECATED EXPORT obs_source_t *
obs_get_transition_by_uuid(const char *uuid);
/** Gets an output by its name. */
EXPORT obs_output_t *obs_get_output_by_name(const char *name);