From 699679d5348d18d3c05dbadd7ea8d6ee4db3c7db Mon Sep 17 00:00:00 2001 From: fduncanh Date: Mon, 7 Feb 2022 11:13:43 -0500 Subject: [PATCH] edited README (add screen freezes section) --- README.html | 4 +++- README.md | 12 +++++++++++- README.txt | 23 ++++++++++++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/README.html b/README.html index ab37b19..47dea40 100644 --- a/README.html +++ b/README.html @@ -107,7 +107,9 @@

4. GStreamer issues (missing plugins, etc.):

To troubleshoot GStreamer execute “export GST_DEBUG=2” to set the GStreamer debug-level environment-variable in the terminal where you will run uxplay, so that you see warning and error messages; (replace “2” by “4” to see much (much) more of what is happening inside GStreamer). Run “gst-inspect-1.0” to see which GStreamer plugins are installed on your system.

Some extra GStreamer packages for special plugins may need to be installed (or reinstalled: a user using a Wayland display system as an alternative to X11 reported that after reinstalling Lubuntu 18.4, UxPlay would not work until gstreamer1.0-x was installed, presumably for Wayland’s X11-compatibility mode). Different distributions may break up GStreamer 1.x into packages in different ways; the packages listed above in the build instructions should bring in other required GStreamer packages as dependencies, but will not install all possible plugins.

-

5. Failure to decrypt ALL video and audio streams from old or non-Apple clients:

+

5. Mirror screen freezes:

+

This can happen if the TCP video stream from the client stops arriving at the server, probably because of network problems (the UDP audio stream may continue to arrive). At 3-second intervals, UxPlay checks that the client is still connected by sending it a request for a NTP time signal. If a reply is not received from the client within a 0.3 sec time-window, an “ntp timeout” is registered. If a certain number (currently 10) of consecutive ntp timeouts occur, UxPlay assumes that the client is “dead”, and resets the connection, becoming available for connection to a new client, or reconnection to the previous one. Sometimes the connection may recover before the timeout limit is reached, and if the default limit is not right for your network, it can be modified using the option “-reset n”, where n is the desired timeout value (n = 0 means “no limit”). If the connection starts to recover after ntp timeouts, a corrupt video packet from before the timeout may trigger a “connection reset by peer” error, which also causes UxPlay to reset the connection. When the connection is reset, the “frozen” mirror screen of the previous connection is left in place, and will be taken over by a new client connection when it is made.

+

6. Failure to decrypt ALL video and audio streams from old or non-Apple clients:

This triggers an unending stream of error messages, and means that the audio decryption key (also used in video decryption) was not correctly extracted from data sent by the client. This should not happen for iOS 9.3 or later clients. However, if a client uses the same older version of the protocol that is used by the Windows-based AirPlay client emulator AirMyPC, the protocol can be switched to the older version by the setting OLD_PROTOCOL_CLIENT_USER_AGENT_LIST in lib/global.h. UxPlay reports the client’s “User Agent” string when it connects. If some other client also fails to decrypt all audio and video, try adding its “User Agent” string in place of “xxx” in the entry “AirMyPC/2.0;xxx” in global.h and rebuild uxplay.

Note that Uxplay declares itself to be an AppleTV3,2 with a sourceVersion 220.68; this can also be changed in global.h. It is crucial for UxPlay to declare this old value of sourceVersion, as this prompts the Apple client to use a less-encrypted “legacy” protocol needed by third-generation Apple TV’s, which are 32-bit devices that cannot run modern tvOS; it is probably not necessary for UxPlay to claim to be such an old AppleTV model.

ChangeLog

diff --git a/README.md b/README.md index 9098549..f293d65 100644 --- a/README.md +++ b/README.md @@ -447,7 +447,17 @@ reported that after reinstalling Lubuntu 18.4, UxPlay would not work until gstr Different distributions may break up GStreamer 1.x into packages in different ways; the packages listed above in the build instructions should bring in other required GStreamer packages as dependencies, but will not install all possible plugins. -### 5. Failure to decrypt ALL video and audio streams from old or non-Apple clients: +### 5. Mirror screen freezes: + +This can happen if the TCP video stream from the client stops arriving at the server, probably because of network problems (the UDP audio stream may continue to arrive). At 3-second +intervals, UxPlay checks that the client is still connected by sending it a request for a NTP time signal. If a reply is not received from the client within a 0.3 sec +time-window, an "ntp timeout" is registered. If a certain number (currently 10) of consecutive ntp timeouts occur, UxPlay assumes that the client is "dead", and resets the connection, +becoming available for connection to a new client, or reconnection to the previous one. Sometimes the connection may recover before the timeout limit is reached, and if the +default limit is not right for your network, it can be modified using the option "-reset _n_", where _n_ is the desired timeout value (_n_ = 0 means "no limit"). If the connection +starts to recover after ntp timeouts, a corrupt video packet from before the timeout may trigger a "connection reset by peer" error, which also causes UxPlay to reset the +connection. When the connection is reset, the "frozen" mirror screen of the previous connection is left in place, and will be taken over by a new client connection when it is made. + +### 6. Failure to decrypt ALL video and audio streams from old or non-Apple clients: This triggers an unending stream of error messages, and means that the audio decryption key (also used in video decryption) diff --git a/README.txt b/README.txt index 6405a19..5d57a44 100644 --- a/README.txt +++ b/README.txt @@ -577,7 +577,28 @@ GStreamer 1.x into packages in different ways; the packages listed above in the build instructions should bring in other required GStreamer packages as dependencies, but will not install all possible plugins. -### 5. Failure to decrypt ALL video and audio streams from old or non-Apple clients: +### 5. Mirror screen freezes: + +This can happen if the TCP video stream from the client stops arriving +at the server, probably because of network problems (the UDP audio +stream may continue to arrive). At 3-second intervals, UxPlay checks +that the client is still connected by sending it a request for a NTP +time signal. If a reply is not received from the client within a 0.3 sec +time-window, an "ntp timeout" is registered. If a certain number +(currently 10) of consecutive ntp timeouts occur, UxPlay assumes that +the client is "dead", and resets the connection, becoming available for +connection to a new client, or reconnection to the previous one. +Sometimes the connection may recover before the timeout limit is +reached, and if the default limit is not right for your network, it can +be modified using the option "-reset *n*", where *n* is the desired +timeout value (*n* = 0 means "no limit"). If the connection starts to +recover after ntp timeouts, a corrupt video packet from before the +timeout may trigger a "connection reset by peer" error, which also +causes UxPlay to reset the connection. When the connection is reset, the +"frozen" mirror screen of the previous connection is left in place, and +will be taken over by a new client connection when it is made. + +### 6. Failure to decrypt ALL video and audio streams from old or non-Apple clients: This triggers an unending stream of error messages, and means that the audio decryption key (also used in video decryption) was not correctly