Browse Source

libobs: Add obs_encoder_get_mixer_index

Exeldro 1 year ago
parent
commit
5b79b4b74d
3 changed files with 25 additions and 0 deletions
  1. 6 0
      docs/sphinx/reference-encoders.rst
  2. 16 0
      libobs/obs-encoder.c
  3. 3 0
      libobs/obs.h

+ 6 - 0
docs/sphinx/reference-encoders.rst

@@ -443,6 +443,12 @@ General Encoder Functions
 
 ---------------------
 
+.. function:: size_t obs_encoder_get_mixer_index(const obs_encoder_t *encoder)
+
+   :return: The mixer index for the audio track which is encoded by the encoder
+
+---------------------
+
 .. function:: void obs_encoder_set_preferred_video_format(obs_encoder_t *encoder, enum video_format format)
               enum video_format obs_encoder_get_preferred_video_format(const obs_encoder_t *encoder)
 

+ 16 - 0
libobs/obs-encoder.c

@@ -1117,6 +1117,22 @@ size_t obs_encoder_get_frame_size(const obs_encoder_t *encoder)
 	return encoder->framesize;
 }
 
+size_t obs_encoder_get_mixer_index(const obs_encoder_t *encoder)
+{
+	if (!obs_encoder_valid(encoder, "obs_encoder_get_mixer_index"))
+		return 0;
+
+	if (encoder->info.type != OBS_ENCODER_AUDIO) {
+		blog(LOG_WARNING,
+		     "obs_encoder_get_mixer_index: "
+		     "encoder '%s' is not an audio encoder",
+		     obs_encoder_get_name(encoder));
+		return 0;
+	}
+
+	return encoder->mixer_idx;
+}
+
 void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video)
 {
 

+ 3 - 0
libobs/obs.h

@@ -2502,6 +2502,9 @@ EXPORT uint32_t obs_encoder_get_sample_rate(const obs_encoder_t *encoder);
 /** For audio encoders, returns the frame size of the audio packet */
 EXPORT size_t obs_encoder_get_frame_size(const obs_encoder_t *encoder);
 
+/** For audio encoders, returns the mixer index */
+EXPORT size_t obs_encoder_get_mixer_index(const obs_encoder_t *encoder);
+
 /**
  * Sets the preferred video format for a video encoder.  If the encoder can use
  * the format specified, it will force a conversion to that format if the