From 621c519cc52b1027a2439fee58c00a3328214796 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 20 Jul 2018 01:49:32 -0700 Subject: [PATCH] libobs: Add function to get encoder object's defaults Rather than relying on the encoder's type identifier, additionally allow the ability to get defaults via an encoder object. --- docs/sphinx/reference-encoders.rst | 1 + libobs/obs-encoder.c | 8 ++++++++ libobs/obs.h | 1 + 3 files changed, 10 insertions(+) diff --git a/docs/sphinx/reference-encoders.rst b/docs/sphinx/reference-encoders.rst index 37cde8312..a9b47282c 100644 --- a/docs/sphinx/reference-encoders.rst +++ b/docs/sphinx/reference-encoders.rst @@ -407,6 +407,7 @@ General Encoder Functions --------------------- .. function:: obs_data_t *obs_encoder_defaults(const char *id) + obs_data_t *obs_encoder_get_defaults(const obs_encoder_t *encoder) :return: An incremented reference to the encoder's default settings diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index 46b7ce660..83b2d7f8c 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -293,6 +293,14 @@ obs_data_t *obs_encoder_defaults(const char *id) return (info) ? get_defaults(info) : NULL; } +obs_data_t *obs_encoder_get_defaults(const obs_encoder_t *encoder) +{ + if (!obs_encoder_valid(encoder, "obs_encoder_defaults")) + return NULL; + + return get_defaults(&encoder->info); +} + obs_properties_t *obs_get_encoder_properties(const char *id) { const struct obs_encoder_info *ei = find_encoder(id); diff --git a/libobs/obs.h b/libobs/obs.h index 4bf26d350..35ddc1760 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -1815,6 +1815,7 @@ EXPORT enum video_format obs_encoder_get_preferred_video_format( /** Gets the default settings for an encoder type */ EXPORT obs_data_t *obs_encoder_defaults(const char *id); +EXPORT obs_data_t *obs_encoder_get_defaults(const obs_encoder_t *encoder); /** Returns the property list, if any. Free with obs_properties_destroy */ EXPORT obs_properties_t *obs_get_encoder_properties(const char *id);