mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
add -nofreeze option; prepare for UxPlay-1.69 release
This commit is contained in:
46
README.html
46
README.html
@@ -1,29 +1,27 @@
|
||||
<h1
|
||||
id="uxplay-1.68-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix-now-also-runs-on-windows.">UxPlay
|
||||
1.68: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix
|
||||
id="uxplay-1.69-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix-now-also-runs-on-windows.">UxPlay
|
||||
1.69: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix
|
||||
(now also runs on Windows).</h1>
|
||||
<h3
|
||||
id="now-developed-at-the-github-site-httpsgithub.comfdh2uxplay-where-all-user-issues-should-be-posted-and-latest-versions-can-be-found.">Now
|
||||
id="now-developed-at-the-github-site-httpsgithub.comfdh2uxplay-where-all-user-issues-should-be-posted-and-latest-versions-can-be-found."><strong>Now
|
||||
developed at the GitHub site <a
|
||||
href="https://github.com/FDH2/UxPlay">https://github.com/FDH2/UxPlay</a>
|
||||
(where ALL user issues should be posted, and latest versions can be
|
||||
found).</h3>
|
||||
found).</strong></h3>
|
||||
<ul>
|
||||
<li><em><strong>NEW in v1.68</strong>: Volume-control improvements, plus
|
||||
improved support for Apple-style one-time “pin” codes introduced in
|
||||
1.67: a register of pin-registered clients can now optionally be
|
||||
maintained to check returning clients; a simpler method for generating a
|
||||
persistent public key (based on the MAC address, which can be set in the
|
||||
UxPlay startup file) is now the default. (The OpenSSL “pem-file” method
|
||||
introduced in 1.67 is still available with the “-key” option.)</em></li>
|
||||
<li><em><strong>NEW in v1.69</strong>: minor changes for users:
|
||||
-nofreeze option to NOT leave frozen video in place when a network
|
||||
failure occurs; internal changes/improvements needed for planned future
|
||||
HLS video streaming support.</em></li>
|
||||
</ul>
|
||||
<h2 id="highlights">Highlights:</h2>
|
||||
<ul>
|
||||
<li>GPLv3, open source.</li>
|
||||
<li>Originally supported only AirPlay Mirror protocol, now has added
|
||||
support for AirPlay Audio-only (Apple Lossless ALAC) streaming from
|
||||
current iOS/iPadOS clients. <strong>There is no support for Airplay2
|
||||
video-streaming protocol, and none is planned.</strong></li>
|
||||
current iOS/iPadOS clients. <strong>There is no current support for
|
||||
Airplay HLS video-streaming (e.g., YouTube video) but this is in
|
||||
development.</strong></li>
|
||||
<li>macOS computers (2011 or later, both Intel and “Apple Silicon” M1/M2
|
||||
systems) can act either as AirPlay clients, or as the server running
|
||||
UxPlay. Using AirPlay, UxPlay can emulate a second display for macOS
|
||||
@@ -166,12 +164,13 @@ app cannot be watched using UxPlay’s AirPlay Mirror mode (only the
|
||||
unprotected audio will be streamed, in AAC format), but both video and
|
||||
audio content from DRM-free apps like “YouTube app” will be streamed by
|
||||
UxPlay in Mirror mode.</strong></p></li>
|
||||
<li><p><strong>As UxPlay does not support non-Mirror AirPlay2 video
|
||||
streaming (where the client controls a web server on the AirPlay server
|
||||
that directly receives content to avoid it being decoded and re-encoded
|
||||
by the client), using the icon for AirPlay video in apps such as the
|
||||
YouTube app will only send audio (in lossless ALAC format) without the
|
||||
accompanying video.</strong></p></li>
|
||||
<li><p><strong>As UxPlay does not currently support non-Mirror AirPlay
|
||||
video streaming (where the client controls a web server on the AirPlay
|
||||
server that directly receives HLS content to avoid it being decoded and
|
||||
re-encoded by the client), using the icon for AirPlay video in apps such
|
||||
as the YouTube app will only send audio (in lossless ALAC format)
|
||||
without the accompanying video (there are plans to support HLS video in
|
||||
future releases of UxPlay)</strong></p></li>
|
||||
</ul>
|
||||
<h3
|
||||
id="possibility-for-using-hardware-accelerated-h264-video-decoding-if-available.">Possibility
|
||||
@@ -1099,6 +1098,10 @@ present, and synchronize with it). After <em>n</em> failures, the client
|
||||
will be presumed to be offline, and the connection will be reset to
|
||||
allow a new connection. The default value of <em>n</em> is 5; the value
|
||||
<em>n</em> = 0 means “no limit” on timeouts.</p>
|
||||
<p><strong>-nofreeze</strong> closes the video window after a reset due
|
||||
to ntp timeout (default is to leave window open to allow a smoother
|
||||
reconection to the same client). This option may be useful in fullscreen
|
||||
mode.</p>
|
||||
<p><strong>-nc</strong> maintains previous UxPlay < 1.45 behavior
|
||||
that does <strong>not close</strong> the video window when the the
|
||||
client sends the “Stop Mirroring” signal. <em>This option is currently
|
||||
@@ -1529,6 +1532,11 @@ an AppleTV6,2 with sourceVersion 380.20.1 (an AppleTV 4K 1st gen,
|
||||
introduced 2017, running tvOS 12.2.1), so it does not seem to matter
|
||||
what version UxPlay claims to be.</p>
|
||||
<h1 id="changelog">Changelog</h1>
|
||||
<p>1.69 2024-08-09 Internal improvements (e.g. in -nohold option,
|
||||
identifying GStreamer videosink selected by autovideosink, finding X11
|
||||
display) in anticipation of future HLS video support. New -nofreeze
|
||||
option to not leave frozen video in place when a network connection is
|
||||
reset. Fixes for GStreamer-1.24.x changes.</p>
|
||||
<p>1.68 2023-12-31 New simpler (default) method for generating a
|
||||
persistent public key from the server MAC address (which can now be set
|
||||
with the -m option). (The previous method is still available with -key
|
||||
|
||||
29
README.md
29
README.md
@@ -1,11 +1,10 @@
|
||||
# UxPlay 1.68: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
# UxPlay 1.69: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
|
||||
### Now developed at the GitHub site [https://github.com/FDH2/UxPlay](https://github.com/FDH2/UxPlay) (where ALL user issues should be posted, and latest versions can be found).
|
||||
### **Now developed at the GitHub site [https://github.com/FDH2/UxPlay](https://github.com/FDH2/UxPlay) (where ALL user issues should be posted, and latest versions can be found).**
|
||||
|
||||
* _**NEW in v1.68**: Volume-control improvements, plus improved support for Apple-style one-time "pin" codes introduced in 1.67: a
|
||||
register of pin-registered clients can now optionally be maintained to check returning clients; a simpler method for generating
|
||||
a persistent public key (based on the MAC address, which can be set in the UxPlay startup file) is now the default. (The OpenSSL
|
||||
"pem-file" method introduced in 1.67 is still available with the "-key" option.)_
|
||||
* _**NEW in v1.69**: minor changes for users: -nofreeze option to NOT leave frozen
|
||||
video in place when a network failure occurs; internal changes/improvements
|
||||
needed for planned future HLS video streaming support._
|
||||
|
||||
|
||||
## Highlights:
|
||||
@@ -13,7 +12,8 @@
|
||||
* GPLv3, open source.
|
||||
* Originally supported only AirPlay Mirror protocol, now has added support
|
||||
for AirPlay Audio-only (Apple Lossless ALAC) streaming
|
||||
from current iOS/iPadOS clients. **There is no support for Airplay2 video-streaming protocol, and none is planned.**
|
||||
from current iOS/iPadOS clients. **There is no current support for Airplay HLS
|
||||
video-streaming (e.g., YouTube video) but this is in development.**
|
||||
* macOS computers (2011 or later, both Intel and "Apple Silicon" M1/M2
|
||||
systems) can act either as AirPlay clients, or
|
||||
as the server running UxPlay. Using AirPlay, UxPlay can
|
||||
@@ -125,11 +125,12 @@ switch back by initiating a_ **Mirror** _mode connection; cover-art display stop
|
||||
the Apple TV app cannot be watched using UxPlay's AirPlay Mirror mode (only the unprotected audio will be streamed, in AAC format),
|
||||
but both video and audio content from DRM-free apps like "YouTube app" will be streamed by UxPlay in Mirror mode.**
|
||||
|
||||
* **As UxPlay does not support non-Mirror AirPlay2 video streaming (where the
|
||||
* **As UxPlay does not currently support non-Mirror AirPlay video streaming (where the
|
||||
client controls a web server on the AirPlay server that directly receives
|
||||
content to avoid it being decoded and re-encoded by the client),
|
||||
HLS content to avoid it being decoded and re-encoded by the client),
|
||||
using the icon for AirPlay video in apps such as the YouTube app
|
||||
will only send audio (in lossless ALAC format) without the accompanying video.**
|
||||
will only send audio (in lossless ALAC format) without the accompanying
|
||||
video (there are plans to support HLS video in future releases of UxPlay)**
|
||||
|
||||
### Possibility for using hardware-accelerated h264 video-decoding, if available.
|
||||
|
||||
@@ -875,6 +876,9 @@ which will not work if a firewall is running.
|
||||
_n_ failures, the client will be presumed to be offline, and the connection will be reset to allow a new
|
||||
connection. The default value of _n_ is 5; the value _n_ = 0 means "no limit" on timeouts.
|
||||
|
||||
**-nofreeze** closes the video window after a reset due to ntp timeout (default is to leave window
|
||||
open to allow a smoother reconection to the same client). This option may be useful in fullscreen mode.
|
||||
|
||||
**-nc** maintains previous UxPlay < 1.45 behavior that does **not close** the video window when the the client
|
||||
sends the "Stop Mirroring" signal. _This option is currently used by default in macOS,
|
||||
as the window created in macOS by GStreamer does not terminate correctly (it causes a segfault)
|
||||
@@ -1205,6 +1209,11 @@ tvOS 12.2.1), so it does not seem to matter what version UxPlay claims to be.
|
||||
|
||||
|
||||
# Changelog
|
||||
1.69 2024-08-09 Internal improvements (e.g. in -nohold option, identifying GStreamer videosink
|
||||
selected by autovideosink, finding X11 display) in anticipation of future HLS video support.
|
||||
New -nofreeze option to not leave frozen video in place when a network connection is reset.
|
||||
Fixes for GStreamer-1.24.x changes.
|
||||
|
||||
1.68 2023-12-31 New simpler (default) method for generating a persistent public key from the server MAC
|
||||
address (which can now be set with the -m option). (The previous method is still available
|
||||
with -key option). New option -reg to maintain a register of pin-authenticated clients. Corrected
|
||||
|
||||
44
README.txt
44
README.txt
@@ -1,23 +1,20 @@
|
||||
# UxPlay 1.68: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
# UxPlay 1.69: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix (now also runs on Windows).
|
||||
|
||||
### Now developed at the GitHub site <https://github.com/FDH2/UxPlay> (where ALL user issues should be posted, and latest versions can be found).
|
||||
### **Now developed at the GitHub site <https://github.com/FDH2/UxPlay> (where ALL user issues should be posted, and latest versions can be found).**
|
||||
|
||||
- ***NEW in v1.68**: Volume-control improvements, plus improved
|
||||
support for Apple-style one-time "pin" codes introduced in 1.67: a
|
||||
register of pin-registered clients can now optionally be maintained
|
||||
to check returning clients; a simpler method for generating a
|
||||
persistent public key (based on the MAC address, which can be set in
|
||||
the UxPlay startup file) is now the default. (The OpenSSL "pem-file"
|
||||
method introduced in 1.67 is still available with the "-key"
|
||||
option.)*
|
||||
- ***NEW in v1.69**: minor changes for users: -nofreeze option to NOT
|
||||
leave frozen video in place when a network failure occurs; internal
|
||||
changes/improvements needed for planned future HLS video streaming
|
||||
support.*
|
||||
|
||||
## Highlights:
|
||||
|
||||
- GPLv3, open source.
|
||||
- Originally supported only AirPlay Mirror protocol, now has added
|
||||
support for AirPlay Audio-only (Apple Lossless ALAC) streaming from
|
||||
current iOS/iPadOS clients. **There is no support for Airplay2
|
||||
video-streaming protocol, and none is planned.**
|
||||
current iOS/iPadOS clients. **There is no current support for
|
||||
Airplay HLS video-streaming (e.g., YouTube video) but this is in
|
||||
development.**
|
||||
- macOS computers (2011 or later, both Intel and "Apple Silicon" M1/M2
|
||||
systems) can act either as AirPlay clients, or as the server running
|
||||
UxPlay. Using AirPlay, UxPlay can emulate a second display for macOS
|
||||
@@ -158,12 +155,13 @@ stops/restarts as you leave/re-enter* **Audio** *mode.*
|
||||
and audio content from DRM-free apps like "YouTube app" will be
|
||||
streamed by UxPlay in Mirror mode.**
|
||||
|
||||
- **As UxPlay does not support non-Mirror AirPlay2 video streaming
|
||||
(where the client controls a web server on the AirPlay server that
|
||||
directly receives content to avoid it being decoded and re-encoded
|
||||
by the client), using the icon for AirPlay video in apps such as the
|
||||
YouTube app will only send audio (in lossless ALAC format) without
|
||||
the accompanying video.**
|
||||
- **As UxPlay does not currently support non-Mirror AirPlay video
|
||||
streaming (where the client controls a web server on the AirPlay
|
||||
server that directly receives HLS content to avoid it being decoded
|
||||
and re-encoded by the client), using the icon for AirPlay video in
|
||||
apps such as the YouTube app will only send audio (in lossless ALAC
|
||||
format) without the accompanying video (there are plans to support
|
||||
HLS video in future releases of UxPlay)**
|
||||
|
||||
### Possibility for using hardware-accelerated h264 video-decoding, if available.
|
||||
|
||||
@@ -1117,6 +1115,10 @@ it). After *n* failures, the client will be presumed to be offline, and
|
||||
the connection will be reset to allow a new connection. The default
|
||||
value of *n* is 5; the value *n* = 0 means "no limit" on timeouts.
|
||||
|
||||
**-nofreeze** closes the video window after a reset due to ntp timeout
|
||||
(default is to leave window open to allow a smoother reconection to the
|
||||
same client). This option may be useful in fullscreen mode.
|
||||
|
||||
**-nc** maintains previous UxPlay \< 1.45 behavior that does **not
|
||||
close** the video window when the the client sends the "Stop Mirroring"
|
||||
signal. *This option is currently used by default in macOS, as the
|
||||
@@ -1570,6 +1572,12 @@ what version UxPlay claims to be.
|
||||
|
||||
# Changelog
|
||||
|
||||
1.69 2024-08-09 Internal improvements (e.g. in -nohold option,
|
||||
identifying GStreamer videosink selected by autovideosink, finding X11
|
||||
display) in anticipation of future HLS video support. New -nofreeze
|
||||
option to not leave frozen video in place when a network connection is
|
||||
reset. Fixes for GStreamer-1.24.x changes.
|
||||
|
||||
1.68 2023-12-31 New simpler (default) method for generating a persistent
|
||||
public key from the server MAC address (which can now be set with the -m
|
||||
option). (The previous method is still available with -key option). New
|
||||
|
||||
8
uxplay.1
8
uxplay.1
@@ -1,11 +1,11 @@
|
||||
.TH UXPLAY "1" "December 2023" "1.68" "User Commands"
|
||||
.TH UXPLAY "1" "August 2024" "1.69" "User Commands"
|
||||
.SH NAME
|
||||
uxplay \- start AirPlay server
|
||||
.SH SYNOPSIS
|
||||
.B uxplay
|
||||
[\fI\,-n name\/\fR] [\fI\,-s wxh\/\fR] [\fI\,-p \/\fR[\fI\,n\/\fR]] [more \fI OPTIONS \/\fR ...]
|
||||
.SH DESCRIPTION
|
||||
UxPlay 1.68: An open\-source AirPlay mirroring (+ audio streaming) server:
|
||||
UxPlay 1.69: An open\-source AirPlay mirroring (+ audio streaming) server:
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B
|
||||
@@ -95,7 +95,9 @@ UxPlay 1.68: An open\-source AirPlay mirroring (+ audio streaming) server:
|
||||
.TP
|
||||
\fB\-reset\fR n Reset after 3n seconds client silence (default 5, 0=never).
|
||||
.TP
|
||||
\fB\-nc\fR Do not close video window when client stops mirroring
|
||||
\fB\-nofreeze\fR Do NOT leave frozen screen in place after reset.
|
||||
.TP
|
||||
\fB\-nc\fR Do NOT close video window when client stops mirroring
|
||||
.TP
|
||||
\fB\-nohold\fR Drop current connection when new client connects.
|
||||
.TP
|
||||
|
||||
11
uxplay.cpp
11
uxplay.cpp
@@ -62,7 +62,7 @@
|
||||
#include "renderers/video_renderer.h"
|
||||
#include "renderers/audio_renderer.h"
|
||||
|
||||
#define VERSION "1.68"
|
||||
#define VERSION "1.69"
|
||||
|
||||
#define SECOND_IN_USECS 1000000
|
||||
#define SECOND_IN_NSECS 1000000000UL
|
||||
@@ -122,6 +122,7 @@ static bool debug_log = DEFAULT_DEBUG_LOG;
|
||||
static int log_level = LOGGER_INFO;
|
||||
static bool bt709_fix = false;
|
||||
static int nohold = 0;
|
||||
static bool nofreeze = false;
|
||||
static unsigned short raop_port;
|
||||
static unsigned short airplay_port;
|
||||
static uint64_t remote_clock_offset = 0;
|
||||
@@ -609,7 +610,8 @@ static void print_info (char *name) {
|
||||
printf("-al x Audio latency in seconds (default 0.25) reported to client.\n");
|
||||
printf("-ca <fn> In Airplay Audio (ALAC) mode, write cover-art to file <fn>\n");
|
||||
printf("-reset n Reset after 3n seconds client silence (default %d, 0=never)\n", NTP_TIMEOUT_LIMIT);
|
||||
printf("-nc do Not Close video window when client stops mirroring\n");
|
||||
printf("-nofreeze Do NOT leave frozen screen in place after reset\n");
|
||||
printf("-nc Do NOT Close video window when client stops mirroring\n");
|
||||
printf("-nohold Drop current connection when new client connects.\n");
|
||||
printf("-restrict Restrict clients to those specified by \"-allow <deviceID>\"\n");
|
||||
printf(" UxPlay displays deviceID when a client attempts to connect\n");
|
||||
@@ -1125,6 +1127,8 @@ static void parse_arguments (int argc, char *argv[]) {
|
||||
db_low = db1;
|
||||
db_high = db2;
|
||||
printf("db range %f:%f\n", db_low, db_high);
|
||||
} else if (arg == "-nofreeze") {
|
||||
nofreeze = true;
|
||||
} else {
|
||||
fprintf(stderr, "unknown option %s, stopping (for help use option \"-h\")\n",argv[i]);
|
||||
exit(1);
|
||||
@@ -1510,8 +1514,9 @@ extern "C" void conn_reset (void *cls, int timeouts, bool reset_video) {
|
||||
LOGI(" Sometimes the network connection may recover after a longer delay:\n"
|
||||
" the default timeout limit n = %d can be changed with the \"-reset n\" option", NTP_TIMEOUT_LIMIT);
|
||||
}
|
||||
printf("reset_video %d\n",(int) reset_video);
|
||||
if (!nofreeze) {
|
||||
close_window = reset_video; /* leave "frozen" window open if reset_video is false */
|
||||
}
|
||||
raop_stop(raop);
|
||||
reset_loop = true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name: uxplay
|
||||
Version: 1.68.3
|
||||
Version: 1.69
|
||||
Release: 1%{?dist}
|
||||
|
||||
%global gittag v%{version}
|
||||
@@ -135,7 +135,7 @@ cd build
|
||||
%{_docdir}/%{name}/llhttp/LICENSE-MIT
|
||||
|
||||
%changelog
|
||||
* Fri Dec 29 2023 UxPlay maintainer <https://github.com/FDH2/UxPlay>
|
||||
* Fri Aug 09 2024 UxPlay maintainer <https://github.com/FDH2/UxPlay>
|
||||
Initial uxplay.spec: tested on Fedora 38, Rocky Linux 9.2, OpenSUSE
|
||||
Leap 15.5, Mageia 9, OpenMandriva ROME, PCLinuxOS
|
||||
-
|
||||
|
||||
Reference in New Issue
Block a user