Browse Source

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.
jp9000 7 years ago
parent
commit
621c519cc5
3 changed files with 10 additions and 0 deletions
  1. 1 0
      docs/sphinx/reference-encoders.rst
  2. 8 0
      libobs/obs-encoder.c
  3. 1 0
      libobs/obs.h

+ 1 - 0
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
 

+ 8 - 0
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);

+ 1 - 0
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);