[3.22] backports/signal-desktop: upgrade to 7.60.0 #1391
3 changed files with 11 additions and 173 deletions
|
|
@ -2,7 +2,7 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=signal-desktop
|
||||
pkgver=7.56.1
|
||||
pkgver=7.60.0
|
||||
pkgrel=0
|
||||
pkgdesc="A messaging app for simple private communication with friends"
|
||||
url="https://github.com/signalapp/Signal-Desktop/"
|
||||
|
|
@ -37,7 +37,6 @@ makedepends="
|
|||
glib-dev
|
||||
gn
|
||||
jsoncpp-dev
|
||||
libavif-dev
|
||||
libjpeg-turbo-dev
|
||||
libepoxy-dev
|
||||
libsecret-dev
|
||||
|
|
@ -67,9 +66,9 @@ makedepends="
|
|||
options="net !check"
|
||||
|
||||
# use _check_depends to validate this
|
||||
_libsignalver=0.72.1
|
||||
_ringrtcver=2.52.0
|
||||
_webrtcver=6998c
|
||||
_libsignalver=0.74.1
|
||||
_ringrtcver=2.53.0
|
||||
_webrtcver=7103d
|
||||
_sqlcipherver=2.0.3
|
||||
|
||||
source="
|
||||
|
|
@ -90,9 +89,7 @@ source="
|
|||
webrtc-shared-libs.patch
|
||||
webrtc-compiler.patch
|
||||
webrtc-gcc13.patch
|
||||
webrtc-rollback-red.patch
|
||||
webrtc-rollback-3rdparty-build-gn.patch
|
||||
webrtc-pipewire-1.4.patch
|
||||
|
||||
signal-desktop.sh
|
||||
"
|
||||
|
|
@ -223,7 +220,6 @@ prepare() {
|
|||
icu
|
||||
jsoncpp
|
||||
libaom
|
||||
libavif
|
||||
libdrm
|
||||
libjpeg
|
||||
libpng
|
||||
|
|
@ -329,6 +325,9 @@ build() {
|
|||
rtc_include_ilbc=false
|
||||
rtc_libvpx_build_vp9=true
|
||||
rtc_use_x11=false
|
||||
rustc_version=\"yes\"
|
||||
rust_bindgen_root=\"/usr\"
|
||||
rust_sysroot_absolute=\"/usr\"
|
||||
|
||||
build_with_mozilla=false
|
||||
chrome_pgo_phase=0
|
||||
|
|
@ -478,11 +477,11 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
cb5a3471ba6269bb36b95183152ec8e74e77cf605970fd1310b2435ee87ef024eb7a51750a5993abd10c036198e30ccdfdc5b6195c0381035bf7b1e3735e0e34 Signal-Desktop-7.56.1.tar.gz
|
||||
e7e08e2909080f34a6c9e65065cfd107e922415727dcdaf9b61aa0e9fb91c7906326c233b3bb7e26eb665e6b4a1b771e2af13e58d8f6ea0f79c39306c9a071cf libsignal-0.72.1.tar.gz
|
||||
37bf7c4d847117c4fcdf371ac84193b005e5f1ff37eec89e2a54ca8968e59945104587b3742b3de116aa0f6f825f3695baeb49b4b96f0268a4c9da0e324b5678 ringrtc-2.52.0.tar.gz
|
||||
3cf2d7cace79510b8bfc36f32113a02d509c90409e511f80529cbcaf23c40d63d552efbf2d09dd5c0fd06abf61402ea3b38a35a69a5c07b7e0670022c3198a18 Signal-Desktop-7.60.0.tar.gz
|
||||
7e89b04ec4e3479b86159a67e4285eaf19f14056a937e5dcf7ee410513d17826af9fb36389b41c0df4e132fb626e078888a3d68f3309c5fc5ee55c7c4f2aa308 libsignal-0.74.1.tar.gz
|
||||
0d0175aebf38bceab1a68f2ce08600f1b9f5e2c59a3f7651e6bc969537a8e13ec2d650501b558b0f11b5822c92b223a65c640428539ed1a6ec440b5afea5e34e ringrtc-2.53.0.tar.gz
|
||||
ec503ba505ea84673773ce761f2108272a890c14fb33d194828045d8170023e8b450f15c3888af89e236cb59a812138216cd0dbd68a7ec62773318b71705c046 node-sqlcipher-2.0.3.tar.gz
|
||||
b43d6ba8d8a64de0715efdcf3c17f174eec359d3f4af123908d18d94c15d5d87339184aa4acd640b6a8c28b1a8ed4ca4e1a36e16bd66aa7914dc47d88be89002 webrtc-6998c.tar.zst
|
||||
5d4b24e443963a84268948c1f30f8db6217fcc77986fe5144359df5c3181fc6607a0548bb362c5a6234cd4c42f487737247ed928f0cfac36ed4ee90068f9d9be webrtc-7103d.tar.zst
|
||||
8d2d2d82c8546c2dd1fef161b61df79918f8c22235a56a46adb375a0beb4acef12c5fe53e67242a4be97f77adc522ff79b47949c352956c742a70d50f4179f7f libsignal-auditable.patch
|
||||
7ee747c8aaa9d6e9149fe0a031e3d4cc9e9c08f22c42076bd05e2acb86952f8170032613d13a53716010edfa3f26ad97b530e82460318eb46a42e28cf5faeb9d signal-use-system-sqlcipher.patch
|
||||
fc2af28645364cd85c106304a26811b036f6be048c52137fbbcc112870a84132a181f532563e0569b560fde3cf8c02480666a9b01d804b0008f97c728005b1c7 signal-disable-updates.patch
|
||||
|
|
@ -494,8 +493,6 @@ aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5ec
|
|||
98a7e4df27c3ed56c5968ebc3ae8e08bfb54362d0c910f9af1d414079a6d5fe0f18aa570ae3c38042f4691af6a130cb3ff689625e26a3987720dd319a5f587b1 webrtc-shared-libs.patch
|
||||
897174fa3b1eaa74a3b2d7d861863a9f60550ddb0d7be700cd590600efdc3bd962f52c21e371276eaf8d5657c98fe8ade9853b0197b61a68d5dce6fa03b5899b webrtc-compiler.patch
|
||||
3f1095861a79862ab5a55c86d7e353d272974617afba39e4d4441024bede8d7b9b8e122da90d56a9c3c0965171803d6b9e29e91d78167a08c6bcc86b3eedab18 webrtc-gcc13.patch
|
||||
8f53dcf3264c5cec338f037e57a7770ec939ee06dfb0c5dfeab23967a3a64d3f861a6b5419766ac892676036b4522bce2f47279ca3658b5c0b6a31c82ac05053 webrtc-rollback-red.patch
|
||||
f8bd574a0de077a643ced26e8a0e3f162e014bbf91c957bbefd113883a70e2b63e483bf400b7e2da8d09edfe76d4f6a257f194a14124f344f1625c5632d12acb webrtc-rollback-3rdparty-build-gn.patch
|
||||
7fa0344a144d5b8f05d0962799b8ce1dbe8f2d403a311d4fbf802a2d032e6586a1268387052b529e809c4740a79d6737a63d7e37ea8902ce926b74309dd44fc3 webrtc-pipewire-1.4.patch
|
||||
87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop.sh
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
Patch-Source: https://webrtc-review.googlesource.com/c/src/+/380500
|
||||
---
|
||||
--- a/webrtc/modules/video_capture/linux/pipewire_session.cc
|
||||
+++ b/webrtc/modules/video_capture/linux/pipewire_session.cc
|
||||
@@ -87,7 +87,7 @@
|
||||
.param = OnNodeParam,
|
||||
};
|
||||
|
||||
- pw_node_add_listener(proxy_, &node_listener_, &node_events, this);
|
||||
+ pw_node_add_listener(reinterpret_cast<pw_node*>(proxy_), &node_listener_, &node_events, this);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -119,7 +119,7 @@
|
||||
uint32_t id = info->params[i].id;
|
||||
if (id == SPA_PARAM_EnumFormat &&
|
||||
info->params[i].flags & SPA_PARAM_INFO_READ) {
|
||||
- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr);
|
||||
+ pw_node_enum_params(reinterpret_cast<pw_node*>(that->proxy_), 0, id, 0, UINT32_MAX, nullptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,136 +0,0 @@
|
|||
diff --git a/webrtc/ringrtc/rffi/src/sdp_observer.cc b/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
index d60f3d5e7ba..d561dedd1d0 100644
|
||||
--- a/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
+++ b/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "rffi/api/sdp_observer_intf.h"
|
||||
#include "rffi/src/ptr.h"
|
||||
#include "rffi/src/sdp_observer.h"
|
||||
-#include "third_party/re2/src/re2/re2.h"
|
||||
+#include <regex>
|
||||
|
||||
namespace webrtc {
|
||||
namespace rffi {
|
||||
@@ -29,8 +29,8 @@ void CreateSessionDescriptionObserverRffi::OnSuccess(SessionDescriptionInterface
|
||||
// TODO tweak the response a little
|
||||
std::string sdp;
|
||||
if (session_description->ToString(&sdp)) {
|
||||
- static LazyRE2 ssrc_re = {".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"};
|
||||
- RE2::Replace(&sdp, *ssrc_re, "");
|
||||
+ sdp = std::regex_replace(sdp, std::regex("(a=fmtp:111 ((?!cbr=).)*)\r?\n"), "$1;cbr=1\r\n");
|
||||
+ sdp = std::regex_replace(sdp, std::regex(".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"), "");
|
||||
|
||||
std::unique_ptr<SessionDescriptionInterface> session_description2 = CreateSessionDescription(session_description->GetType(), sdp);
|
||||
delete session_description;
|
||||
diff --git a/webrtc/ringrtc/rffi/BUILD.gn b/webrtc/ringrtc/rffi/BUILD.gn
|
||||
index 4564e734e63..341535b0fc7 100644
|
||||
--- a/webrtc/ringrtc/rffi/BUILD.gn
|
||||
+++ b/webrtc/ringrtc/rffi/BUILD.gn
|
||||
@@ -58,7 +58,6 @@ if (is_android) {
|
||||
"${android_sdk}:libjingle_peerconnection_jni",
|
||||
"${android_sdk}:libjingle_peerconnection_metrics_default_jni",
|
||||
"//pc:libjingle_peerconnection",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
output_extension = "so"
|
||||
}
|
||||
@@ -78,7 +77,6 @@ if (is_ios) {
|
||||
|
||||
deps = [
|
||||
"//third_party/libyuv",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -94,7 +92,6 @@ if (is_linux || is_mac || is_win) {
|
||||
deps = [
|
||||
"//sdk:media_constraints",
|
||||
"//media:rtc_simulcast_encoder_adapter",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
}
|
||||
}
|
||||
diff --git a/webrtc/ringrtc/rffi/api/peer_connection_intf.h b/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
index 66958254fed..4cd223beb93 100644
|
||||
--- a/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
+++ b/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
@@ -105,6 +105,7 @@ RUSTEXPORT webrtc::SessionDescriptionInterface*
|
||||
Rust_sessionDescriptionFromV4(bool offer,
|
||||
const RffiConnectionParametersV4* v4_borrowed,
|
||||
bool enable_tcc_audio,
|
||||
+ bool enable_red_audio,
|
||||
bool enable_vp9);
|
||||
|
||||
RUSTEXPORT void
|
||||
diff --git a/webrtc/ringrtc/rffi/src/peer_connection.cc b/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
index 9db5ed8219d..0714b3589e3 100644
|
||||
--- a/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
+++ b/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
@@ -42,6 +42,7 @@ int VIDEO_LAYERS_ALLOCATION_EXT_ID = 14;
|
||||
// 101 used by connection.rs
|
||||
int DATA_PT = 101;
|
||||
int OPUS_PT = 102;
|
||||
+int OPUS_RED_PT = 105;
|
||||
int VP8_PT = 108;
|
||||
int VP8_RTX_PT = 118;
|
||||
int VP9_PT = 109;
|
||||
@@ -317,12 +318,14 @@ RUSTEXPORT webrtc::SessionDescriptionInterface*
|
||||
Rust_sessionDescriptionFromV4(bool offer,
|
||||
const RffiConnectionParametersV4* v4_borrowed,
|
||||
bool enable_tcc_audio,
|
||||
+ bool enable_red_audio,
|
||||
bool enable_vp9) {
|
||||
// Major changes from the default WebRTC behavior:
|
||||
// 1. We remove all codecs except Opus, VP8, and VP9
|
||||
// 2. We remove all header extensions except for transport-cc, video orientation,
|
||||
// and abs send time.
|
||||
// 3. Opus CBR and DTX is enabled.
|
||||
+ // 4. RED is enabled for audio.
|
||||
|
||||
// For some reason, WebRTC insists that the video SSRCs for one side don't
|
||||
// overlap with SSRCs from the other side. To avoid potential problems, we'll give the
|
||||
@@ -361,6 +364,15 @@ Rust_sessionDescriptionFromV4(bool offer,
|
||||
auto video = std::make_unique<cricket::VideoContentDescription>();
|
||||
set_rtp_params(video.get());
|
||||
|
||||
+ // Turn on the RED "meta codec" for Opus redundancy.
|
||||
+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2);
|
||||
+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT));
|
||||
+
|
||||
+ if (enable_red_audio) {
|
||||
+ // Add RED before Opus to use it by default when sending.
|
||||
+ audio->AddCodec(opus_red);
|
||||
+ }
|
||||
+
|
||||
auto opus = cricket::CreateAudioCodec(OPUS_PT, cricket::kOpusCodecName, 48000, 2);
|
||||
// These are the current defaults for WebRTC
|
||||
// We set them explicitly to avoid having the defaults change on us.
|
||||
@@ -378,6 +390,11 @@ Rust_sessionDescriptionFromV4(bool offer,
|
||||
opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
audio->AddCodec(opus);
|
||||
|
||||
+ if (!enable_red_audio) {
|
||||
+ // Add RED after Opus so that RED packets can at least be decoded properly if received.
|
||||
+ audio->AddCodec(opus_red);
|
||||
+ }
|
||||
+
|
||||
auto add_video_feedback_params = [] (cricket::Codec* video_codec) {
|
||||
video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamCcm, cricket::kRtcpFbCcmParamFir));
|
||||
@@ -589,9 +606,16 @@ CreateSessionDescriptionForGroupCall(bool local,
|
||||
opus.SetParam("cbr", "1");
|
||||
opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
|
||||
+ // Turn on the RED "meta codec" for Opus redundancy.
|
||||
+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2);
|
||||
+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT));
|
||||
+
|
||||
+ // Add RED after Opus so that RED packets can at least be decoded properly if received.
|
||||
local_audio->AddCodec(opus);
|
||||
+ local_audio->AddCodec(opus_red);
|
||||
for (auto& remote_audio : remote_audios) {
|
||||
remote_audio->AddCodec(opus);
|
||||
+ remote_audio->AddCodec(opus_red);
|
||||
}
|
||||
|
||||
auto add_video_feedback_params = [] (cricket::Codec* video_codec) {
|
||||
Loading…
Add table
Add a link
Reference in a new issue