diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 3d9f51f4e..fcc463999 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -409,6 +409,12 @@ uint32_t obs_source_get_output_flags(const obs_source_t *source) return source ? source->info.output_flags : 0; } +uint32_t obs_get_source_output_flags(enum obs_source_type type, const char *id) +{ + const struct obs_source_info *info = get_source_info(type, id); + return info ? info->output_flags : 0; +} + static void obs_source_deferred_update(obs_source_t *source) { if (source->context.data && source->info.update) diff --git a/libobs/obs.h b/libobs/obs.h index 4dd99337c..ce477101f 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -654,6 +654,10 @@ EXPORT bool obs_source_removed(const obs_source_t *source); */ EXPORT uint32_t obs_source_get_output_flags(const obs_source_t *source); +/** Returns capability flags of a source type */ +EXPORT uint32_t obs_get_source_output_flags(enum obs_source_type type, + const char *id); + /** Gets the default settings for a source type */ EXPORT obs_data_t *obs_get_source_defaults(enum obs_source_type type, const char *id);