From 5b79b4b74df9de61fad2612b025d4a354b4559be Mon Sep 17 00:00:00 2001 From: Exeldro Date: Fri, 6 Sep 2024 13:28:20 +0200 Subject: [PATCH] libobs: Add obs_encoder_get_mixer_index --- docs/sphinx/reference-encoders.rst | 6 ++++++ libobs/obs-encoder.c | 16 ++++++++++++++++ libobs/obs.h | 3 +++ 3 files changed, 25 insertions(+) diff --git a/docs/sphinx/reference-encoders.rst b/docs/sphinx/reference-encoders.rst index ba67a4017..d6ae15119 100644 --- a/docs/sphinx/reference-encoders.rst +++ b/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) diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index d5086915c..9c97f1445 100644 --- a/libobs/obs-encoder.c +++ b/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) { diff --git a/libobs/obs.h b/libobs/obs.h index b2c400c46..0e366cc0a 100644 --- a/libobs/obs.h +++ b/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