Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add airplay2 build of shairport-sync for testing #378

Closed
wants to merge 30 commits into from
Closed

Conversation

linknum23
Copy link
Contributor

@linknum23 linknum23 commented Sep 28, 2022

Steps to add support for a single fully featured airplay2 stream

  • Add shairport-sync binary built for aiplay2
  • Add nqptp dependency (needs to be installed from source for now)
  • Test single airplay 2 stream with additional airplay 1 streams
  • Add support for single airplay 2 stream, with the second stream either being rejected or converted to airplay 1 (depends on above)
  • Add metadata using MPRIS support from Use Spotifyd instead of vollibrespot to get latest librespot changes #366 (old metadata is broken with ap2 and already needed to be upgraded to support user control)

@codecov-commenter
Copy link

codecov-commenter commented Sep 28, 2022

Codecov Report

Merging #378 (970ffa9) into main (6dd7492) will decrease coverage by 1.06%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #378      +/-   ##
==========================================
- Coverage   56.81%   55.75%   -1.07%     
==========================================
  Files          12       12              
  Lines        2920     2920              
==========================================
- Hits         1659     1628      -31     
- Misses       1261     1292      +31     
Flag Coverage Δ
unittests 55.75% <0.00%> (-1.07%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
amplipi/streams.py 41.62% <0.00%> (ø)
amplipi/app.py 77.88% <0.00%> (-7.62%) ⬇️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@linknum23
Copy link
Contributor Author

At the moment we have one working Airplay 2 Stream, without metadata support. Supporting a single airplay 2 stream is looking very promising.

NOTE: Multiple Airplay 2 streams will require a significant effort and some experimentation to integrate docker audio streams into our ALSA configuration and is not part of this PR.

@linknum23
Copy link
Contributor Author

One option to support multiple Airplay 2 instances sans docker may be to use MVLAN in bridged mode, spinning up one virtual LAN per airplay 2 instance (or just having 4 default ones instantiated at boot time). Need to investigate how feasible this is and if multiple NQPTP servers can be run like this.

@linknum23 linknum23 changed the base branch from main to develop November 8, 2022 15:53
@linknum23
Copy link
Contributor Author

linknum23 commented Nov 8, 2022

We should probably wrap this PR soon. I think there are a couple of routes to finish this, since we can only support 1 airplay2 stream right now:

  1. Add checking to only allow a single airplay2 instance at a time (unable to run additional airplay1 instances)
  2. Downgrade additional running airplay2 instances to airplay1 (we would probably use an additional flag to determine which streams want to be airplay2)
  3. Wait until we can support multiple aitplay2 instances

@zetlen
Copy link

zetlen commented Jan 8, 2023

We should probably wrap this PR soon. I think there are a couple of routes to finish this, since we can only support 1 airplay2 stream right now:

  • Add checking to only allow a single airplay2 instance at a time (unable to run additional airplay1 instances)

  • Downgrade additional running airplay2 instances to airplay1 (we would probably use an additional flag to determine which streams want to be airplay2)

  • Wait until we can support multiple aitplay2 instances

Hey, I know this is an old comment and you may have already made a decision, but I strongly endorse releasing option 1 for now, and backlogging support for options 2 and 3. There's a huge advantage to having even one airplay 2 stream, for home theater users and for people trying to explain to family and friends why playing from iPhones is "all weird and slow". Thanks in advance, and thanks a million times for all your work up to this point.

@linknum23
Copy link
Contributor Author

We are actually working on a simple version of 2 right now with the plans of getting a prerelease out soon.

@linknum23
Copy link
Contributor Author

Closing this since this work is being finalized in airplay1and2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants