Skip to content

Commit

Permalink
obs-webrtc: Only advertise relevant codecs for a or v-only outputs
Browse files Browse the repository at this point in the history
A video-only output should not advertise any audio codecs.
  • Loading branch information
tt2468 committed Apr 23, 2024
1 parent 8f421bd commit 132c8a0
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions plugins/obs-webrtc/whip-output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,12 @@ void WHIPOutput::Send(void *data, uintptr_t size, uint64_t duration,
void register_whip_output()
{
const uint32_t base_flags = OBS_OUTPUT_ENCODED | OBS_OUTPUT_SERVICE;
#ifdef ENABLE_HEVC
const char *video_codecs = "h264;hevc;av1";
#else
const char *video_codecs = "h264;av1";
#endif
const char *audio_codecs = "opus";

struct obs_output_info info = {};
info.id = "whip_output";
Expand Down Expand Up @@ -638,21 +644,19 @@ void register_whip_output()
info.get_connect_time_ms = [](void *priv_data) -> int {
return static_cast<WHIPOutput *>(priv_data)->GetConnectTime();
};
#ifdef ENABLE_HEVC
info.encoded_video_codecs = "h264;hevc;av1";
#else
info.encoded_video_codecs = "h264;av1";
#endif
info.encoded_audio_codecs = "opus";
info.encoded_video_codecs = video_codecs;
info.encoded_audio_codecs = audio_codecs;
info.protocols = "WHIP";

obs_register_output(&info);

info.id = "whip_output_video";
info.flags = OBS_OUTPUT_VIDEO | base_flags;
info.encoded_audio_codecs = nullptr;
obs_register_output(&info);

info.id = "whip_output_audio";
info.flags = OBS_OUTPUT_AUDIO | base_flags;
info.encoded_video_codecs = nullptr;
info.encoded_audio_codecs = audio_codecs;
obs_register_output(&info);
}

0 comments on commit 132c8a0

Please sign in to comment.