From 953c4b836bd494265f29e7c2711ddfa1841b2421 Mon Sep 17 00:00:00 2001 From: Joaquin Bartaburu Date: Wed, 22 Jul 2026 16:16:56 -0300 Subject: [PATCH 1/2] feat: add opus support --- src/moq-output.cpp | 15 +++++++++++---- src/moq-service.cpp | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/moq-output.cpp b/src/moq-output.cpp index 4040dda..9cc98ed 100644 --- a/src/moq-output.cpp +++ b/src/moq-output.cpp @@ -89,12 +89,19 @@ bool MOQOutput::LoadAudioEncoderSettings() const char *codec = obs_encoder_get_codec(aenc); //todo: add codec validation here - uint8_t *extra = nullptr; size_t extra_size = 0; obs_encoder_get_extra_data(aenc, &extra, &extra_size); - audio_init_data.assign(extra, extra + extra_size); - audio_codec = AacCodecString(audio_init_data); + + if (codec && strcmp(codec, "opus") == 0) { + audio_init_data.clear(); + audio_codec = "opus"; + } else { + audio_init_data.assign(extra, extra + extra_size); + audio_codec = AacCodecString(audio_init_data); + } + + return true; } @@ -441,7 +448,7 @@ void register_moq_output() // todo: add support for hevc and av1 info.encoded_video_codecs = "h264"; // todo: add support for opus and ac3 - info.encoded_audio_codecs = "aac"; + info.encoded_audio_codecs = "aac,opus"; info.get_name = [](void *) -> const char * { return obs_module_text("Output.Name"); diff --git a/src/moq-service.cpp b/src/moq-service.cpp index 4bbce9f..e1808c7 100644 --- a/src/moq-service.cpp +++ b/src/moq-service.cpp @@ -1,6 +1,6 @@ #include "moq-service.h" -const char *audio_codecs[] = {"aac", nullptr}; +const char *audio_codecs[] = {"aac", "opus", nullptr}; const char *video_codecs[] = {"h264", nullptr}; MOQService::MOQService(obs_data_t *settings, obs_service_t *service) From 5d5cb3512773cdbf39e3a15b0e978a370f6303df Mon Sep 17 00:00:00 2001 From: Joaquin Bartaburu Date: Wed, 22 Jul 2026 16:18:54 -0300 Subject: [PATCH 2/2] style: format fix --- src/moq-output.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/moq-output.cpp b/src/moq-output.cpp index 9cc98ed..211f4d3 100644 --- a/src/moq-output.cpp +++ b/src/moq-output.cpp @@ -100,8 +100,6 @@ bool MOQOutput::LoadAudioEncoderSettings() audio_init_data.assign(extra, extra + extra_size); audio_codec = AacCodecString(audio_init_data); } - - return true; }