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
7 changes: 7 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ rustflags = ["-D", "warnings"] # Treat warnings as errors during CI
# Run tests with full backtrace on failure
env = { RUST_BACKTRACE = "full", RUST_LOG = "debug" }

# The exact lint and test invocations CI runs, so a local pass means a CI pass.
# --workspace matters: the root is also a package, so a bare `cargo test` or
# `cargo clippy` covers srtla_send alone and skips the crates/ members.
[alias]
xlint = "clippy --workspace --all-targets --all-features -- -D warnings"
xtest = "test --workspace --all-features"

[profile.test]
# Optimize tests for debugging
debug = true
Expand Down
4 changes: 4 additions & 0 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[codespell]
# Build output, the lockfile and the untracked reference checkouts listed in
# .gitignore are not ours to spell-check.
skip = ./.git,./target,./moblin,./bond-bunny-main,./.claude,./.impeccable,Cargo.lock
5 changes: 3 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# Auto detect text files and perform LF normalization
* text=auto
# LF everywhere, including Windows checkouts: the shell scripts under scripts/
# run in CI and in WSL, and bash fails on CRLF line endings.
* text=auto eol=lf
139 changes: 139 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: Bug report
description: srtla_send is not behaving the way it should
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this. The debug log almost always contains
the answer, so reports with one attached get resolved much faster.

- type: checkboxes
id: troubleshooting
attributes:
label: Before you file
description: Please work through these first. They resolve most reports.
options:
- label: I searched [existing issues](https://github.com/irlserver/srtla_send/issues?q=is%3Aissue) (including closed ones) and this is not already reported.
required: true
- label: I am on the [latest release](https://github.com/irlserver/srtla_send/releases) and the problem still happens there.
required: true
- label: I checked the README's [Troubleshooting](https://github.com/irlserver/srtla_send#troubleshooting) section.
required: true
- label: >-
Every uplink can reach the receiver on its own, and source routing is set up so
each IP in the IP list leaves through its own interface (see
[Assumptions and Prerequisites](https://github.com/irlserver/srtla_send#assumptions-and-prerequisites)).
required: false
- label: >-
If only some links carry traffic, I tried `--mode classic` to find out whether
the enhanced scheduler's quality scoring is the cause.
required: false

- type: textarea
id: what-happened
attributes:
label: What happened
description: What you saw, and what you expected instead.
placeholder: |
After one modem drops and comes back, it never carries traffic again.
I expected the link to rejoin within a few seconds.
validations:
required: true

- type: textarea
id: repro
attributes:
label: Steps to reproduce
description: What you did, in order. Include how long it took to show up.
placeholder: |
1. Start srtla_send with two 4G modems
2. Pull the SIM from one modem for 30 seconds
3. Put it back; the link re-registers but stays idle
validations:
required: true

- type: markdown
attributes:
value: |
## The debug log

**This is the single most useful thing you can attach.** Run srtla_send with
`RUST_LOG=debug`, reproduce the problem, and let it run for at least a minute
afterwards:

```
RUST_LOG=debug srtla_send 6000 receiver.example.com 5000 ./uplinks.txt 2>&1 | tee srtla.log
```

The log contains your receiver hostname and uplink IPs. Replace anything you would
rather not share before posting. If the log is long, attach it as a file instead of
pasting it.

- type: textarea
id: log
attributes:
label: Debug log
description: The `RUST_LOG=debug` output around the time the problem happened, or an attached file.
render: text
validations:
required: true

- type: input
id: version
attributes:
label: srtla_send version
description: The full output of `srtla_send -v`.
placeholder: "4.0.1 (main@df0b393) [srtla_send]"
validations:
required: true

- type: dropdown
id: install
attributes:
label: How you installed it
options:
- .deb from a GitHub release
- Built from source
- Bundled with a device or distribution
validations:
required: true

- type: input
id: platform
attributes:
label: Device and OS
placeholder: "Jetson Nano, Ubuntu 18.04 (arm64)"
validations:
required: true

- type: textarea
id: setup
attributes:
label: Stream setup
description: >
The full srtla_send command line (with the receiver host removed if you prefer), any
config file, the uplinks and what they are (4G/5G modem, Starlink, Wi-Fi, Ethernet),
the receiver (srtla_rec version or service), and the encoder or SRT sender.
placeholder: |
srtla_send --control-socket /tmp/srtla.sock 6000 REDACTED 5000 /etc/srtla/ips
Uplinks: 2x 4G modem (USB), 1x Starlink via Ethernet
Receiver: srtla_rec from irlserver, latest
Encoder: belaUI, H.265 1080p30, 6 Mbps, SRT latency 2000 ms
validations:
required: true

- type: textarea
id: stats
attributes:
label: Link stats
description: >
Optional but helpful: the output of `get_stats` over the control socket while the
problem is happening (see [Runtime Configuration](https://github.com/irlserver/srtla_send#runtime-configuration)).
render: json

- type: textarea
id: extra
attributes:
label: Anything else
description: Graphs, metrics, or context that does not fit above.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Documentation
url: https://github.com/irlserver/srtla_send#readme
about: Options, scheduling modes, runtime configuration and troubleshooting. Please check here before opening an issue.
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Feature request
description: Suggest something srtla_send should do
labels: ["enhancement"]
body:
- type: checkboxes
id: checked
attributes:
label: Before you file
options:
- label: I searched [existing issues](https://github.com/irlserver/srtla_send/issues?q=is%3Aissue) (including closed ones) and this is not already suggested.
required: true
- label: I checked the README to confirm this is not already possible, including through the config file, the control socket or the command line options.
required: true

- type: textarea
id: problem
attributes:
label: What problem does this solve
description: Describe the situation you hit, not only the feature. The underlying problem often has a better solution than the first one that comes to mind.
validations:
required: true

- type: textarea
id: proposal
attributes:
label: What you would like it to do
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: What you tried instead
description: Workarounds, other settings, other tools.
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Question or help
description: "\"How do I...\" or \"is this normal?\""
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Please read the [README](https://github.com/irlserver/srtla_send#readme) first. It covers
every option, the scheduling modes, runtime configuration and troubleshooting.

- type: checkboxes
id: checked
attributes:
label: Before you ask
options:
- label: I searched [existing issues](https://github.com/irlserver/srtla_send/issues?q=is%3Aissue) (including closed ones). The same question may already have an answer.
required: true
- label: I read the relevant part of the README.
required: true

- type: textarea
id: question
attributes:
label: Your question
description: What you are trying to do, and what is unclear or not behaving the way you expected.
validations:
required: true

- type: textarea
id: setup
attributes:
label: Setup
description: If the question is about your stream, include the srtla_send version (`srtla_send -v`), device, uplinks and receiver.
placeholder: |
srtla_send 4.0.1 on a Jetson Nano, Ubuntu 18.04
Uplinks: 2x 4G modem
Receiver: srtla_rec from irlserver
20 changes: 20 additions & 0 deletions .github/release-notes-header.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Installation

Download the `.deb` for your device: `arm64` for ARM boards (Jetson, Orange Pi, Raspberry Pi and similar), `amd64` for x86 machines. Then install it:

```
sudo dpkg -i srtla_*_arm64.deb
```

The package installs `/usr/bin/srtla_send`. It runs on any Linux distribution with glibc 2.27 or newer, which includes Ubuntu 18.04 and Debian 10 and later.

Verify the download against `sha256sums.txt`:

```
sha256sum --check --ignore-missing sha256sums.txt
```

For arguments and configuration, see the [README](https://github.com/irlserver/srtla_send#usage).

---

Loading
Loading