Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
This is 4.3.3 release.
  • Loading branch information
mikebrady committed May 29, 2024
2 parents 45767ef + 2ec6068 commit 28ae1da
Show file tree
Hide file tree
Showing 25 changed files with 436 additions and 264 deletions.
1 change: 0 additions & 1 deletion .github/workflows/check_classic_mac_basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ jobs:
- name: Install Dependencies
run: |
brew install automake
brew install openssl
brew install popt
brew install libconfig
brew install libao
Expand Down
14 changes: 9 additions & 5 deletions AIRPLAY2.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# AirPlay 2
Shairport Sync offers AirPlay 2 support for audio sources on iOS devices, Macs from macOS 10.15 (Catalina) onwards, HomePod minis and Apple TVs.
**Shairport Sync** (as of [v4.1](https://github.com/mikebrady/shairport-sync/releases/tag/4.1) and newer) offers **AirPlay 2** support for audio sources on:
- iOS devices,
- Macs from macOS 10.15 (Catalina) onwards,
- HomePod minis,
- and Apple TVs.

## What Works
- AirPlay 2 audio for iOS, HomePod mini, AppleTV and Mac players.
Expand All @@ -18,20 +22,20 @@ Shairport Sync offers AirPlay 2 support for audio sources on iOS devices, Macs f

## General
Shairport Sync uses a companion application called [NQPTP](https://github.com/mikebrady/nqptp) ("Not Quite PTP")
for timing and synchronisation in AirPlay 2. NQPTP must run as `root` and must have exclusive access to ports `319` and `320`.
for timing and synchronisation in AirPlay 2. NQPTP must have exclusive access to ports `319` and `320`.

Lossless and High Definition Lossless material is transcoded to AAC before it reaches Shairport Sync.

## What You Need
AirPlay 2 support needs a slightly more powerful CPU for decoding and synchronisation and more memory for bigger buffers and larger libraries. A system with the power of a Raspberry Pi 2 or Raspberry Pi Zero 2 W, or better, is recommended.

Here are some guidelines:
* Full access, including `root` privileges, to a system at least as powerful as a Raspberry Pi 2 or a Raspberry Pi Zero 2 W.
* Full access, including network capabilities or `root` privileges, to a system at least as powerful as a Raspberry Pi 2 or a Raspberry Pi Zero 2 W.
* Ports 319 and 320 must be free to use (i.e. they must not be in use by another service such as a PTP service) and must not be blocked by a firewall.
* An up-to-date Linux or FreeBSD. This is important, as some of the libraries must be the latest available.
* An up-to-date system. This is important, as some of the libraries must be the latest available.
* Shairport Sync will not run in AirPlay 2 mode on a Mac because NQPTP, on which it relies, needs ports 319 and 320, which are already used by macOS.
* A version of the [FFmpeg](https://www.ffmpeg.org) library with an AAC decoder capable of decoding Floating Planar -- `fltp` -- material. There is a guide [here](TROUBLESHOOTING.md#aac-decoder-issues-airplay-2-only) to help you find out if your system has it.
* An audio output, for example an ALSA device (or `sndio` in FreeBSD). The device must be capable of running at 44,100 frames per second. You can use [`sps-alsa-explore`](https://github.com/mikebrady/sps-alsa-explore) to test the suitability of hardware ALSA audio devices on your device.
* An audio output. The device must be capable of running at 44,100 frames per second. You can use [`sps-alsa-explore`](https://github.com/mikebrady/sps-alsa-explore) to test the suitability of hardware ALSA audio devices on your device.
Other backends continue to work as with "classic" Shairport Sync.
- Multiple instances of the AirPlay 2 version of Shairport Sync can not be hosted on the same system. It seems that AirPlay 2 clients are confused by having multiple AirPlay 2 players at the same IP addresses.

Expand Down
8 changes: 4 additions & 4 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,11 @@ If you are building classic Shairport Sync, the list of packages is shorter:
# apt-get install --no-install-recommends build-essential git autoconf automake libtool \
libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev
```
### Fedora
For AirPlay 2 operation, _before you install the libraries_, please ensure the you have [enabled](https://docs.fedoraproject.org/en-US/quick-docs/setup_rpmfusion) RPM Fusion software repositories at least to the "Free" level. If this is not done, FFmpeg libraries will be installed that lack a suitable AAC decoder, preventing Shairport Sync from working in AirPlay 2 mode.
### Fedora (Fedora 40)
For AirPlay 2 operation, _before you install the libraries_, please ensure the you have [enabled](https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup) RPM Fusion software repositories to the "Nonfree" level. If this is not done, the FFmpeg libraries will lack a suitable AAC decoder, preventing Shairport Sync from working in AirPlay 2 mode.
```
# yum update
# yum install make automake gcc gcc-c++ \
# yum install --allowerasing make automake gcc gcc-c++ \
git autoconf automake avahi-devel libconfig-devel openssl-devel popt-devel soxr-devel \
ffmpeg ffmpeg-devel libplist-devel libsodium-devel libgcrypt-devel libuuid-devel vim-common \
alsa-lib-devel
Expand Down Expand Up @@ -122,7 +122,7 @@ Download, install, enable and start NQPTP from [here](https://github.com/mikebra

### Shairport Sync
#### Build and Install
Download Shairport Sync, configure, compile and install it. Before executing the commands, please note the following:
Download Shairport Sync, branch and configure, compile and install it. Before executing the commands, please note the following:

* If building for FreeBSD, replace `--with-systemd` with `--with-os=freebsd --with-freebsd-service`.
* Omit the `--with-airplay-2` from the `./configure` options if you are building classic Shairport Sync.
Expand Down
Loading

0 comments on commit 28ae1da

Please sign in to comment.