From 36e597995147c021798182a5ebe1681f11f730fd Mon Sep 17 00:00:00 2001 From: Patrick Reynolds Date: Fri, 11 Oct 2024 19:14:46 +0000 Subject: [PATCH] Work around stdc++ bug with clang std::optional::emplace() without a value is broken on clang++ with gnu libstdc++. this workarounds the bug by using the assignment operator instead. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 Bug: None Change-Id: I6fd096ff4d632259e6eab776e318c1d7b15e4bd5 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365400 Commit-Queue: Mirko Bonadei Reviewed-by: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#43229} --- media/engine/webrtc_video_engine.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index dc978a7830..b9c6c61ddf 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -2002,7 +2002,8 @@ void WebRtcVideoSendChannel::WebRtcVideoSendStream::SetCodec( stream_config.raw_payload = cs.codec.packetization == kPacketizationParamRaw; if (i < parameters_.config.rtp.rtx.ssrcs.size()) { - auto& rtx = stream_config.rtx.emplace(); + auto& rtx = stream_config.rtx.emplace( + decltype(stream_config.rtx)::value_type()); rtx.ssrc = parameters_.config.rtp.rtx.ssrcs[i]; rtx.payload_type = cs.rtx_payload_type; }