diff --git a/src/Utils.cpp b/src/Utils.cpp index cb381d0f..bf0ade73 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -387,6 +387,13 @@ int Utils::GetTransitionDuration(obs_source_t* transition) { return 0; } + if (obs_transition_fixed(transition)) { + // If this transition has a fixed duration (such as a Stinger), + // we don't currently have a way of retrieving that number. + // For now, return -1 to indicate that we don't know the actual duration. + return -1; + } + OBSSourceAutoRelease destinationScene = obs_transition_get_active_source(transition); OBSDataAutoRelease destinationSettings = obs_source_get_private_settings(destinationScene); diff --git a/src/WSEvents.cpp b/src/WSEvents.cpp index 619aea7a..4bb4cdc3 100644 --- a/src/WSEvents.cpp +++ b/src/WSEvents.cpp @@ -878,7 +878,9 @@ void WSEvents::TransitionDurationChanged(int ms) { * * @return {String} `name` Transition name. * @return {String} `type` Transition type. - * @return {int} `duration` Transition duration (in milliseconds). + * @return {int} `duration` Transition duration (in milliseconds). + * Will be -1 for any transition with a fixed duration, + * such as a Stinger, due to limitations of the OBS API. * @return {String} `from-scene` Source scene of the transition * @return {String} `to-scene` Destination scene of the transition *