-
Notifications
You must be signed in to change notification settings - Fork 88
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
Mac client running Sequoia 15.2 (seen on M2/M3) no longer sends NTP time signal: use options "-vsync no -reset 0 " as workaround (was: Incorrect ntp_time (uses client uptime) prevents screen sharing) #379
Comments
mirroring a macbook M2 client running Sequoia 15.1.1 on current UxPlay-github (essentially same as 1.71.1) seems to work fine on Ubuntu-24.04.1. Build 1.71.1 or (1.70) or guthub latest on Ubuntu. (There was GStreamer change in gstreamer-1.24.0 that was only seen after Ubuntu-24.04 was released that gave a possibly similar error.)
Its possible there is regression between 1.70 and 1.71 (one such regression already got fixed in 1.71.1). This is because 1.71 adds a large amount of new code (for HLS streaming) that was developed from code earlier then 1.69, without the h265 code introduced in 1.70. So its possible that some fix in 1.70 was accidentally removed when the new code was merged. both 1.70 and 1.71 involved major new features (h265 and hls suppor,t respectively) which were developed in parallel. It would be interesting if you could test uxplay-1.70. get the code here: https://github.com/FDH2/UxPlay/releases/tag/v1.70 |
Running uxplay with I've checked out the code but haven't had the time yet to satisfy all the build dependencies for CMake. I'll post back here when I can build and compare versions! Thank you for the guidance. |
I was incorrect, it looks like this issue is not a regression, just a bug / feature mismatch: I can't cast from this M3 to any other device running uxplay except on 1.71.1, and that only when using I've updated the title of this Issue to better reflect the nature of the bug. |
Uxplay-1.70 : introduces support for h265 (4K) video with -h265 option https://github.com/FDH2/UxPlay/releases/tag/v1.70 UxPlay-1.71.1 introduces support for HLS live streaming (YouTube videos) https://github.com/FDH2/UxPlay/releases/tag/v1.71.1 can you confirm that 1.71.1 works (but only with -nosync) but 1.70 does not (this is very strange, and if true is an important clue). We don't have an M3 mac for testing yet. Can you post uxplay -d output showing the failure ? When the M2 mac came out, they added some more initial video codec stuff which only became apparent when we were able to test using an M2 mac client. It would be good to rule out such changes. The full uxplay -d output with an M3 client could help check for such changes. |
I took an hour or so to test out AirPlay mirroring with combinations of setups. Testing methodsI started a unique On each client macbook, I simply used the "Screen Mirroring" tool available in the system taskbar in the top-right of the screen, and shared a browser video with a youtube video. Client machines
Host machines
ConnectivityI connected to all machines via wired ethernet on the same switch. I also connected to the netbook using wifi. Test results
Notable Conclusionsntp and timeoutOn all of the M3 sessions, I was eventually kicked due to "timeout" after 5-10 seconds. The network time listed in the log is always the uptime of the M3 machine, whereas for both other clients the times matched the host's "now" timestamp. Connection methodThe results did not seem to change whether I used Wifi or wired ethernet. MacOS bugThere seems to be a bug in Monterey 12.7.6 that continues sending AirPlay packets to the host after "disconnecting" the screen in MacOS. Is it possible there's a handshake that's being missed here? It doesn't seem to cause problems on the client end but was surprising to see. |
Ah, I've forgotten to try 1.70. I will add those test results! |
m1 mac
m3 mac
|
I've added those results to the table too. With |
OK : with -vsync = no, the ntp susbsystem is not in fact used for synchrnization of audio with video, On the M3, ntp eventually fails, and when a failure is detected, after 5 consecutive failures (=15 sec) uxplay gives up on the client. the option -reset 0 means that the ntp failure is ignored. This will allow operation in "-vsync no" to continue. The reason ntp is failing on the M3 needs to be tracked down.
|
I would be happy to help :) I am not familiar yet with the uxplay codebase, but I would be happy to checkout and run individual commits until I can help more, if you do ever have a change or build with additional logging you'd like to try out. (I know that'd be a pretty tedious approach to debugging, sorry.) |
Dont know why. Will test on an M2 client running sequoai 15.2 next week (can't do it before then)
|
Tested on a macbook pro M2 running Sequoia 15.2: same issue.
Not sure what to do. The reset purpose is so uxplay disconnects if the client has "disappeared". There are other ways to test for this (e.g. the client sends a video status report every second.) The client does inform uxplay that it is using NTP time protocol, and running macOS 15.2, so this could be used to work around the issue, perhaps.
|
Is it possible to wireshark an apple tv 3 to see how it behaves with 15.2? |
could be. problem is encryption after pairing. I got wireshark working last year some time, but could only view the first setup request before that encryption. The NTP time request is afterwards. Still I should check that 15.2 clients work with with apple tv 3. The issue with uxplay and 15.2 clients seems to be that the client just doesnt respond to the NTP request by uxplay on the UDP time channel. I dont know if this channel is encrypted, but think it is. Should check what channels the client transmits on. @connorh315 got a lot of the encryption support working, but didn't finish (I think he was motivated by using decryption for finding out why h265 wasn't working, but then we found out why before the decryption support was finished ....) |
@fduncanh I think you @ the wrong person. |
Hello!
I'm trying to use UxPlay to screen-mirror from a Macbook. On the same network, wired or wireless, when using Ubuntu (1.68 via apt) or Void Linux (1.71.1 via xbps) as the server, with an M3 Macbook Pro as the client, it fails with this error:
The ntp_time listed is always the uptime of my client device, which is a 2023 M3 Macbook Pro (Sequoia 15.2).
Strangely, when using Linux Mint (1.46! via apt), mirroring works just fine from the same macbook. Even more strangely, when sharing a screen from my 2017 Macbook Air (Monterey 12.7.6) to those devices, mirroring works fine on all 3, leading me to suspect it's not a network issue; actually it seems similar to this issue. Is there some change to the protocol for AirPlay that would produce incompatible behavior, or some reason the older version seemed to be working fine?
I would be happy to provide more details as needed. Attached are
uxplay -d
debug output when connecting with the M3 mac and the 2017 Air:debug_2017air.txt
debug_m3.txt
The text was updated successfully, but these errors were encountered: