diff --git a/VERSION b/VERSION index cc4254b2..1405b059 100644 --- a/VERSION +++ b/VERSION @@ -2,10 +2,10 @@ CCACHE_VERSION=4.8.3 # WebRTC doesn't have its own versioning, so we use Chromium versions: # https://chromiumdash.appspot.com/releases -WEBRTC_VERSION=130.0.6723.116 +WEBRTC_VERSION=131.0.6778.69 # Look for the concrete revision for WebRTC in: # https://chromium.googlesource.com/chromium/src/+/refs/tags//DEPS -WEBRTC_COMMIT=28b793b4dd275bf2b901b87e01c0ee8d4f5732fc +WEBRTC_COMMIT=8445abdf8069cadcbd134369b70d0ebd436ef477 # Additional revision of the `WEBRTC_VERSION` added as `-rN` suffix to it, and # tracking additional changes applied on top of it. diff --git a/build.windows.ps1 b/build.windows.ps1 index 89a5b99f..ea56778d 100644 --- a/build.windows.ps1 +++ b/build.windows.ps1 @@ -120,6 +120,7 @@ Exec { git apply --ignore-space-change -v $PATCH_DIR\fix_disable_proxy_trace_eve Exec { git apply --ignore-space-change -v $PATCH_DIR\webrtc_voice_engine.patch } Exec { git apply --ignore-space-change -v $PATCH_DIR\win_dynamic_crt.patch } Exec { git apply --ignore-space-change -v $PATCH_DIR\windows_fix_abseil.patch } +Exec { git apply --ignore-space-change -v $PATCH_DIR\windows_fix_optional.patch } Pop-Location Get-PSDrive diff --git a/build/linux-arm64/Makefile b/build/linux-arm64/Makefile index 6153631a..0b2af545 100644 --- a/build/linux-arm64/Makefile +++ b/build/linux-arm64/Makefile @@ -38,7 +38,8 @@ patch: common-patch patch -p2 < $(PATCH_DIR)/4k_linux.patch && \ patch -p2 < $(PATCH_DIR)/disable_use_hermetic_xcode_on_linux.patch && \ patch -p2 < $(PATCH_DIR)/linux_clang_optional.patch && \ - patch -p2 < $(PATCH_DIR)/linux_fix_enable_safe_libstdcxx.patch + patch -p2 < $(PATCH_DIR)/linux_fix_enable_safe_libstdcxx.patch && \ + patch -p2 < $(PATCH_DIR)/linux_emplace.patch .PHONY: build build: download patch diff --git a/build/linux-x64/Makefile b/build/linux-x64/Makefile index 8dc5c2d0..53d74f07 100644 --- a/build/linux-x64/Makefile +++ b/build/linux-x64/Makefile @@ -38,7 +38,8 @@ patch: common-patch patch -p2 < $(PATCH_DIR)/4k_linux.patch && \ patch -p2 < $(PATCH_DIR)/disable_use_hermetic_xcode_on_linux.patch && \ patch -p2 < $(PATCH_DIR)/linux_clang_optional.patch && \ - patch -p2 < $(PATCH_DIR)/linux_fix_enable_safe_libstdcxx.patch + patch -p2 < $(PATCH_DIR)/linux_fix_enable_safe_libstdcxx.patch && \ + patch -p2 < $(PATCH_DIR)/linux_emplace.patch .PHONY: build build: download patch diff --git a/instrumentisto-libwebrtc-bin.podspec b/instrumentisto-libwebrtc-bin.podspec index ab30e891..460fac94 100644 --- a/instrumentisto-libwebrtc-bin.podspec +++ b/instrumentisto-libwebrtc-bin.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = "instrumentisto-libwebrtc-bin" - spec.version = "130.0.6723.116" + spec.version = "131.0.6778.69" spec.summary = "Pre-compiled `libwebrtc` library for Darwin used by Medea Flutter-WebRTC." spec.homepage = "https://github.com/instrumentisto/libwebrtc-bin" @@ -8,7 +8,7 @@ Pod::Spec.new do |spec| spec.author = { 'Instrumentisto Team' => 'developer@instrumentisto.com' } spec.ios.deployment_target = '10.0' - spec.source = { :http => "https://github.com/instrumentisto/libwebrtc-bin/releases/download/130.0.6723.116/libwebrtc-ios.zip" } + spec.source = { :http => "https://github.com/instrumentisto/libwebrtc-bin/releases/download/131.0.6778.69/libwebrtc-ios.zip" } spec.vendored_frameworks = "WebRTC.xcframework" spec.pod_target_xcconfig = { diff --git a/patch/enable_ios_scalability_mode.patch b/patch/enable_ios_scalability_mode.patch index 8ddefec0..a05be46c 100644 --- a/patch/enable_ios_scalability_mode.patch +++ b/patch/enable_ios_scalability_mode.patch @@ -108,7 +108,7 @@ index 27fb4adada..7306e3d2ab 100644 } diff --git a/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h b/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h -index 07f6b7a39c..d055115ae2 100644 +index 467b51de98..8795d5af71 100644 --- a/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h +++ b/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.h @@ -51,6 +51,10 @@ RTC_OBJC_EXPORT @@ -126,7 +126,7 @@ diff --git a/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm b/src/s index 69f8885f4c..2a79c30edb 100644 --- a/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm +++ b/src/sdk/objc/api/peerconnection/RTCRtpEncodingParameters.mm -@@ -20,6 +20,7 @@ @implementation RTC_OBJC_TYPE (RTCRtpEncodingParameters) +@@ -20,6 +20,7 @@ @synthesize minBitrateBps = _minBitrateBps; @synthesize maxFramerate = _maxFramerate; @synthesize numTemporalLayers = _numTemporalLayers; @@ -134,7 +134,7 @@ index 69f8885f4c..2a79c30edb 100644 @synthesize scaleResolutionDownBy = _scaleResolutionDownBy; @synthesize ssrc = _ssrc; @synthesize bitratePriority = _bitratePriority; -@@ -53,6 +54,10 @@ - (instancetype)initWithNativeParameters: +@@ -53,6 +54,10 @@ if (nativeParameters.num_temporal_layers) { _numTemporalLayers = [NSNumber numberWithInt:*nativeParameters.num_temporal_layers]; } @@ -145,7 +145,7 @@ index 69f8885f4c..2a79c30edb 100644 if (nativeParameters.scale_resolution_down_by) { _scaleResolutionDownBy = [NSNumber numberWithDouble:*nativeParameters.scale_resolution_down_by]; -@@ -86,6 +91,10 @@ - (instancetype)initWithNativeParameters: +@@ -86,6 +91,10 @@ if (_numTemporalLayers != nil) { parameters.num_temporal_layers = std::optional(_numTemporalLayers.intValue); } @@ -506,7 +506,7 @@ diff --git a/src/sdk/objc/base/RTCVideoCodecInfo.m b/src/sdk/objc/base/RTCVideoC index a45c2d33fb..4228942e48 100644 --- a/src/sdk/objc/base/RTCVideoCodecInfo.m +++ b/src/sdk/objc/base/RTCVideoCodecInfo.m -@@ -64,12 +64,14 @@ - (NSUInteger)hash { +@@ -64,12 +64,14 @@ - (instancetype)initWithCoder:(NSCoder *)decoder { return [self initWithName:[decoder decodeObjectForKey:@"name"] @@ -523,17 +523,17 @@ index a45c2d33fb..4228942e48 100644 @end diff --git a/src/sdk/objc/base/RTCVideoEncoderFactory.h b/src/sdk/objc/base/RTCVideoEncoderFactory.h -index 31e469d4ba..668249da81 100644 +index 3a102c87b5..df2ed4ad92 100644 --- a/src/sdk/objc/base/RTCVideoEncoderFactory.h +++ b/src/sdk/objc/base/RTCVideoEncoderFactory.h -@@ -13,6 +13,7 @@ - #import "RTCMacros.h" +@@ -12,6 +12,7 @@ + #import "RTCVideoCodecInfo.h" #import "RTCVideoEncoder.h" +#import "RTCCodecSupport.h" + #import "sdk/objc/base/RTCMacros.h" NS_ASSUME_NONNULL_BEGIN - @@ -59,6 +60,10 @@ RTC_OBJC_EXPORT - (NSArray *) supportedCodecs; // TODO(andersc): "supportedFormats" instead? @@ -622,7 +622,7 @@ index 6e3baa8750..8c2a8b1f39 100644 #if defined(RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY) #import "api/video_codec/RTCVideoDecoderAV1.h" // nogncheck -@@ -31,7 +32,8 @@ @implementation RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory) +@@ -31,7 +32,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedHighInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecH264Name @@ -632,7 +632,7 @@ index 6e3baa8750..8c2a8b1f39 100644 NSDictionary *constrainedBaselineParams = @{ @"profile-level-id" : kRTCMaxSupportedH264ProfileLevelConstrainedBaseline, -@@ -40,7 +42,8 @@ @implementation RTC_OBJC_TYPE (RTCDefaultVideoDecoderFactory) +@@ -40,7 +42,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedBaselineInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecH264Name @@ -643,17 +643,17 @@ index 6e3baa8750..8c2a8b1f39 100644 RTC_OBJC_TYPE(RTCVideoCodecInfo) *vp8Info = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:kRTCVideoCodecVp8Name]; diff --git a/src/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h b/src/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h -index 92ab40c95b..e0344d0f97 100644 +index 4dc2d6c8a8..bd82652321 100644 --- a/src/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h +++ b/src/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h -@@ -12,6 +12,7 @@ +@@ -11,6 +11,7 @@ + #import - #import "RTCMacros.h" #import "RTCVideoEncoderFactory.h" +#import "api/video_codec/RTCWrappedNativeVideoEncoderFactory.h" + #import "sdk/objc/base/RTCMacros.h" NS_ASSUME_NONNULL_BEGIN - @@ -23,8 +24,9 @@ RTC_OBJC_EXPORT @interface RTC_OBJC_TYPE (RTCDefaultVideoEncoderFactory) : NSObject @@ -789,7 +789,7 @@ index bdae19d687..1cdbd0887d 100644 @implementation RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) -@@ -26,7 +27,8 @@ @implementation RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) +@@ -26,7 +27,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedHighInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName @@ -799,7 +799,7 @@ index bdae19d687..1cdbd0887d 100644 [codecs addObject:constrainedHighInfo]; NSDictionary *constrainedBaselineParams = @{ -@@ -36,7 +38,8 @@ @implementation RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) +@@ -36,7 +38,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedBaselineInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName @@ -821,7 +821,7 @@ index 9843849307..1c897b4e7b 100644 @implementation RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) -@@ -26,7 +27,8 @@ @implementation RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) +@@ -26,7 +27,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedHighInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName @@ -831,7 +831,7 @@ index 9843849307..1c897b4e7b 100644 [codecs addObject:constrainedHighInfo]; NSDictionary *constrainedBaselineParams = @{ -@@ -36,7 +38,8 @@ @implementation RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) +@@ -36,7 +38,8 @@ }; RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedBaselineInfo = [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName @@ -841,7 +841,7 @@ index 9843849307..1c897b4e7b 100644 [codecs addObject:constrainedBaselineInfo]; return [codecs copy]; -@@ -46,4 +49,15 @@ @implementation RTC_OBJC_TYPE (RTCVideoEncoderFactoryH264) +@@ -46,4 +49,15 @@ return [[RTC_OBJC_TYPE(RTCVideoEncoderH264) alloc] initWithCodecInfo:info]; } @@ -861,7 +861,7 @@ diff --git a/src/sdk/objc/unittests/objc_video_encoder_factory_tests.mm b/src/sd index 2f469bb4a6..8da6f1f9ca 100644 --- a/src/sdk/objc/unittests/objc_video_encoder_factory_tests.mm +++ b/src/sdk/objc/unittests/objc_video_encoder_factory_tests.mm -@@ -37,7 +37,9 @@ +@@ -37,7 +37,9 @@ id CreateEncoderFactoryReturning(int retu id encoderFactoryMock = OCMProtocolMock(@protocol(RTC_OBJC_TYPE(RTCVideoEncoderFactory))); RTC_OBJC_TYPE(RTCVideoCodecInfo)* supported = diff --git a/patch/linux_emplace.patch b/patch/linux_emplace.patch new file mode 100644 index 00000000..8afd31c8 --- /dev/null +++ b/patch/linux_emplace.patch @@ -0,0 +1,14 @@ +diff --git a/src/media/engine/webrtc_video_engine.cc b/src/media/engine/webrtc_video_engine.cc +index d6b53ffa6b..a57af55409 100644 +--- a/src/media/engine/webrtc_video_engine.cc ++++ b/src/media/engine/webrtc_video_engine.cc +@@ -1995,7 +1995,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; + } diff --git a/patch/windows_fix_optional.patch b/patch/windows_fix_optional.patch new file mode 100644 index 00000000..247692dc --- /dev/null +++ b/patch/windows_fix_optional.patch @@ -0,0 +1,12 @@ +diff --git a/src/rtc_base/ssl_stream_adapter.h b/src/rtc_base/ssl_stream_adapter.h +index dcaaf3a0d1..3b06516011 100644 +--- a/src/rtc_base/ssl_stream_adapter.h ++++ b/src/rtc_base/ssl_stream_adapter.h +@@ -14,6 +14,7 @@ + #include + #include + ++#include + #include + #include + #include