Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## v2.64.1

- Fix bug in starting peek after receiving device_joined_or_left

## v2.64.0

- Update to webrtc 7444f
- Send DTX TOC only in lieu of refresh packets
- Update logging in connection.cc to log ICE failures

- Desktop: Rename rttMedianConnection to rttMedianConnectionMillis survey field

- iOS: Add ifdef'd support for video file input

- Call Sim: Minor improvements and fixes

## v2.63.0

- Desktop: Always disable mic and camera on call end
Expand Down
12 changes: 6 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ members = [
]

[workspace.package]
version = "2.63.0"
version = "2.64.1"
authors = ["Calling Team <callingteam@signal.org>"]

[patch.crates-io]
Expand Down
3 changes: 2 additions & 1 deletion SignalRingRTC.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = "SignalRingRTC"
s.version = "2.63.0"
s.version = "2.64.1"
s.summary = "A Swift & Objective-C library used by the Signal iOS app for WebRTC interactions."

s.description = <<-DESC
Expand Down Expand Up @@ -56,6 +56,7 @@ Pod::Spec.new do |s|
'CARGO_BUILD_TARGET[sdk=iphonesimulator*][arch=arm64]' => 'aarch64-apple-ios-sim',
'CARGO_BUILD_TARGET[sdk=iphonesimulator*][arch=*]' => 'x86_64-apple-ios',
'CARGO_BUILD_TARGET[sdk=iphoneos*]' => 'aarch64-apple-ios',
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => ENV.include?('RINGRTC_USE_FILE_BASED_CAMERA') ? 'USE_FILE_BASED_CAMERA' : '',
}

s.script_phases = [
Expand Down
6 changes: 3 additions & 3 deletions acknowledgments/acknowledgments.html
Original file line number Diff line number Diff line change
Expand Up @@ -734,9 +734,9 @@ <h4>Used by:</h4>
<ul class="license-used-by">
<li><a href="https://crates.io/crates/libsignal-account-keys">libsignal-account-keys 0.1.0</a></li>
<li><a href="https://crates.io/crates/libsignal-core">libsignal-core 0.1.0</a></li>
<li><a href="https://crates.io/crates/mrp">mrp 2.63.0</a></li>
<li><a href="https://crates.io/crates/protobuf">protobuf 2.63.0</a></li>
<li><a href="https://crates.io/crates/ringrtc">ringrtc 2.63.0</a></li>
<li><a href="https://crates.io/crates/mrp">mrp 2.64.1</a></li>
<li><a href="https://crates.io/crates/protobuf">protobuf 2.64.1</a></li>
<li><a href="https://crates.io/crates/ringrtc">ringrtc 2.64.1</a></li>
<li><a href="https://crates.io/crates/regex-aot">regex-aot 0.1.0</a></li>
<li><a href="https://github.com/signalapp/partial-default">partial-default-derive 0.1.0</a></li>
<li><a href="https://github.com/signalapp/partial-default">partial-default 0.1.0</a></li>
Expand Down
2 changes: 1 addition & 1 deletion acknowledgments/acknowledgments.md
Original file line number Diff line number Diff line change
Expand Up @@ -669,7 +669,7 @@ For more information on this, and how to apply and follow the GNU AGPL, see

```

## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.63.0, protobuf 2.63.0, ringrtc 2.63.0, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0
## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.64.1, protobuf 2.64.1, ringrtc 2.64.1, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0

```
GNU AFFERO GENERAL PUBLIC LICENSE
Expand Down
2 changes: 1 addition & 1 deletion acknowledgments/acknowledgments.plist
Original file line number Diff line number Diff line change
Expand Up @@ -924,7 +924,7 @@ You should also get your employer (if you work as a programmer) or school, if an
<key>License</key>
<string>GNU Affero General Public License v3.0 only</string>
<key>Title</key>
<string>libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.63.0, protobuf 2.63.0, ringrtc 2.63.0, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0</string>
<string>libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.64.1, protobuf 2.64.1, ringrtc 2.64.1, regex-aot 0.1.0, partial-default-derive 0.1.0, partial-default 0.1.0</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
Expand Down
16 changes: 8 additions & 8 deletions bin/fetch-artifact.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
UNVERIFIED_DOWNLOAD_NAME = "unverified.tmp"

PREBUILD_CHECKSUMS = {
'android': 'f746796a0494f005d9a032bcec5a811522089658fb3bcffb172b50f918bfbe74',
'ios': '3b2c249daeac4b3ee25d11d1b1659ba0f0405b1ae0230da91cc73ac7c1b24ff2',
'linux-x64': '497531230622c2a934be55ddc7c9f7c7ac2ce4577e87201f2492e3febdf1d694',
'linux-arm64': 'c585cc746a94f37f9a40fbbae92c544d2a2552f5b6f8e006effe7b42add3b1d6',
'mac-x64': '6728ee6e3dd29f291237359d2d69100c935be8e8cce0cf78efb7b282a506d64d',
'mac-arm64': 'a839ed44de14330d6fd33f8d074bcef40abf1ad6dca276898a319188e2784326',
'windows-x64': 'e76f45191fa48f1a66b82d80f41b9045b89a11caeb47e7fd83d64fda58960be0',
'windows-arm64': 'd0fcb0081e3c5ff0e716003f824672fdafd265e275eba8a6f4ed61298005c28c',
'android': '520be7a10fa6c796cba29a790c8bf839b2e9f08b06b9314ebb165f0d76bbf7f9',
'ios': '5421d640ce6f598a42cbc22eeb74223135d6d9869f8929d6bd5acaf0722527ff',
'linux-x64': '9135254b5b230b50ddbe6787d85715676ccc41636af331bef670303762153c99',
'linux-arm64': '3e9a4eab524c386fa87a30f3ff2156f375e563bed2b9e3ba5a78917f8dd76e70',
'mac-x64': '36d19d0ee14a0bbe45dc24298b1b211ec4ee11b7d891c585feb43383e4d8920f',
'mac-arm64': '30cd81aca0f9c8f971895b584104f8412abd3c7a067f49c5b8322e1b7beebf2f',
'windows-x64': '51fa1684901009f04684c45f039a9cbf48be2b7cf5242ad730b203adf69bd0c0',
'windows-arm64': '5cf450c5fc0cb50840e5c18dc97afeb9a17c5ea7b359949b8c9af62adcf7770a',
}


Expand Down
2 changes: 1 addition & 1 deletion call_sim/docker/signaling_server/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

108 changes: 59 additions & 49 deletions call_sim/src/docker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ use bollard::{
Docker,
models::ContainerMemoryStats,
query_parameters,
secret::{ContainerCpuStats, ContainerCpuUsage, ContainerStatsResponse},
secret::{ContainerCpuStats, ContainerCpuUsage},
};
use chrono::DateTime;
use futures_util::stream::TryStreamExt;
use futures_util::stream::StreamExt;
use itertools::Itertools;
use tokio::{
fs::OpenOptions,
Expand Down Expand Up @@ -1595,36 +1595,37 @@ impl DockerStats {
let path = path.to_string();

tokio::spawn(async move {
// Setup to stream statistics from Docker (default: every 1 second).
let query_parameters = query_parameters::StatsOptionsBuilder::new()
.stream(true)
.build();
let stream = &mut docker.stats(&name, Some(query_parameters));

// Collect the stats. This will await until the container is stopped then dump
// all the stats to a log.
match stream.try_collect::<Vec<ContainerStatsResponse>>().await {
Ok(responses) => {
match OpenOptions::new()
.write(true)
.create(true)
.truncate(true)
.open(format!("{}/{}_stats.log", path, name))
.await
{
Ok(mut file) => {
let _ = file
.write_all(b"Timestamp\tCPU\tMEM\tTX_Bitrate\tRX_Bitrate\n")
.await;

let mut prev_timestamp = 0i64;

let mut prev_tx_bytes = 0u64;
let mut prev_rx_bytes = 0u64;

let mut prev_total_cpu_usage = 0u64;
let mut prev_system_cpu_usage = 0u64;

for response in responses {
let mut stream = docker.stats(&name, Some(query_parameters));

// Collect the stats. Open a file and write the values as they arrive.
match OpenOptions::new()
.write(true)
.create(true)
.truncate(true)
.open(format!("{}/{}_stats.log", path, name))
.await
{
Ok(mut file) => {
let _ = file
.write_all(b"Timestamp\tCPU\tMEM\tTX_Bitrate\tRX_Bitrate\n")
.await;

let mut prev_timestamp = 0i64;

let mut prev_tx_bytes = 0u64;
let mut prev_rx_bytes = 0u64;

let mut prev_total_cpu_usage = 0u64;
let mut prev_system_cpu_usage = 0u64;

// Process stats as they arrive.
while let Some(result) = stream.next().await {
match result {
Ok(response) => {
match (response.cpu_stats, response.memory_stats, response.networks)
{
(
Expand Down Expand Up @@ -1655,25 +1656,29 @@ impl DockerStats {
Some(network) => {
let tx_bytes = network.tx_bytes.unwrap();
let rx_bytes = network.rx_bytes.unwrap();
let time_delta =
(timestamp - prev_timestamp) as f32 / 1000.0;
let tx_bitrate = (tx_bytes - prev_tx_bytes) as f32
* 8.0
/ time_delta;
let rx_bitrate = (rx_bytes - prev_rx_bytes) as f32
* 8.0
/ time_delta;

let (tx_bitrate, rx_bitrate) =
if prev_timestamp == 0 {
// Ignore the first data point since there was no reference.
(0.0, 0.0)
} else {
let time_delta =
(timestamp - prev_timestamp) as f32
/ 1000.0;
let tx_bitrate =
(tx_bytes - prev_tx_bytes) as f32 * 8.0
/ time_delta;
let rx_bitrate =
(rx_bytes - prev_rx_bytes) as f32 * 8.0
/ time_delta;
(tx_bitrate, rx_bitrate)
};

prev_timestamp = timestamp;
prev_tx_bytes = tx_bytes;
prev_rx_bytes = rx_bytes;

if prev_timestamp == 0 {
// Ignore the first data point since there was no reference.
(0.0, 0.0)
} else {
(tx_bitrate, rx_bitrate)
}
(tx_bitrate, rx_bitrate)
}
None => {
println!("Error: stat missing eth0!");
Expand All @@ -1692,8 +1697,12 @@ impl DockerStats {
// grow over time and doesn't directly reflect RingRTC's
// memory usage.
// https://docs.docker.com/engine/reference/commandline/stats/#description
let memory = memory_usage
- memory_stats.get("total_inactive_file").unwrap();
let cache_usage = *memory_stats
.get("total_inactive_file")
.or_else(|| memory_stats.get("inactive_file"))
.unwrap_or(&0);

let memory = memory_usage.saturating_sub(cache_usage);
let _ = file
.write_all(
format!(
Expand All @@ -1717,14 +1726,15 @@ impl DockerStats {
}
}
}
}
Err(err) => {
println!("Error creating stats file: {:?}", err);
Err(err) => {
println!("Error collecting stats for {}: {:?}", name, err);
break;
}
}
}
}
Err(err) => {
println!("Error collecting stats for {}: {:?}", name, err);
println!("Error creating stats file: {:?}", err);
}
}
});
Expand Down
Loading
Loading