From 5802077f788fe5cdd07670e6969454bd06ecfd4d Mon Sep 17 00:00:00 2001 From: tt2468 Date: Sat, 20 Apr 2024 18:47:13 -0700 Subject: [PATCH] obs-webrtc: Correctly guard HEVC in output using ifdefs If an output does not support HEVC, it should not advertise it. For services, however, a service primarily defines the codecs which are supported for the protocol spec itself/destination platform, so HEVC can be advertised still. --- plugins/obs-webrtc/whip-output.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/obs-webrtc/whip-output.cpp b/plugins/obs-webrtc/whip-output.cpp index 9e4e6a696..a27a1964c 100644 --- a/plugins/obs-webrtc/whip-output.cpp +++ b/plugins/obs-webrtc/whip-output.cpp @@ -162,7 +162,7 @@ void WHIPOutput::ConfigureVideoTrack(std::string media_stream_id, packetizer = std::make_shared( rtc::H264RtpPacketizer::Separator::StartSequence, rtp_config, MAX_VIDEO_FRAGMENT_SIZE); -#if ENABLE_HEVC +#ifdef ENABLE_HEVC } else if (strcmp("hevc", codec) == 0) { video_description.addH265Codec(video_payload_type); packetizer = std::make_shared( @@ -632,7 +632,11 @@ void register_whip_output() info.get_connect_time_ms = [](void *priv_data) -> int { return static_cast(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.protocols = "WHIP";