diff --git a/README.html b/README.html index 29a3be6..48ad016 100644 --- a/README.html +++ b/README.html @@ -1,6 +1,6 @@
Currently, a workaround implemented in UxPlay-1.55 as the new
-uxplay option -bt709 is needed because Apple are using an
-uncommon “full-range color” variant of the “bt709” color standard used
-for digital TV broadcasting, which is currently not recognized by the
-Video4Linux2 plugin. It is planned to eventually add support for Apple’s
-variant “bt709” color to GStreamer; after this has been done, this
-option will no longer be needed (and updated patches for backports will
-be provided in the UxPlay Wiki).
The basic uxplay options for R Pi are
-uxplay -bt709 -v4l2 [-vs <videosink>]. On a system
-without X11 (like R Pi OS Lite) with framebuffer video, use
-<videosink> = kmssink. With the Wayland
-video compositor (as in recent Ubuntu for R Pi) use
+uxplay -v4l2 [-vs <videosink>]. The choice
+<videosink> = glimagesink is sometimes
+useful. On a system without X11 (like R Pi OS Lite) with framebuffer
+video, use <videosink> = kmssink. With
+the Wayland video compositor (as in recent Ubuntu for R Pi) use
<videosink> = waylandsink. For
convenience, these options are also available combined in options
--rpi,-rpifb, -rpiwl, respectively
-provided for X11, framebuffer, and Wayland systems. You may find the
-simple “uxplay -bt709”, (which lets GStreamer try to find the best video
-solution by itself) provides the best results.
-rpi, -rpigl -rpifb,
+-rpiwl, respectively provided for X11, X11 with OpenGL,
+framebuffer, and Wayland systems. You may find the simple “uxplay”,
+(which lets GStreamer try to find the best video solution by itself)
+provides the best results.
If you are not using the latest patches from the wiki,
+you will also need to add the -bt709 option:
+previously the GStreamer v4l2 plugin could not recognise Apple’s color
+format (an unusual “full-range” variant of the bt709 HDTV standard),
+which -bt709 fixes.
Tip: to start UxPlay on a remote host (such as a Raspberry Pi) +using ssh:
ssh user@remote_host
export DISPLAY=:0
@@ -517,13 +516,15 @@ without video in Airplay non-mirror mode.
-v4l2 Video settings for hardware h264 video
decoding in the GPU by Video4Linux2. Equivalent to
-vd v4l2h264dec -vc v4l2convert.
--bt709 A workaround for the failure of the current
+
-bt709 A workaround for the failure of the older
Video4Linux2 plugin to recognize Apple’s use of an uncommon (but
permitted) “full-range color” variant of the bt709 color standard for
-digital TV. This will no longer be needed if GStreamer is updated to
-recognize the Apple variant.
--rpi Equivalent to “-v4l2 -bt709”. Use for “Desktop”
+digital TV. This is no longer needed by GStreamer-1.20.4 and backports
+from it.
+-rpi Equivalent to “-v4l2”. Use for “Desktop”
Raspberry Pi systems with X11.
+-rpigl Equivalent to “-v4l2 -vs glimagesink”.
+Sometimes better for “Desktop” Raspberry Pi systems with X11.
-rpifb Equivalent to “-rpi -vs kmssink” (use for
Raspberry Pi systems using the framebuffer, like RPi OS Bullseye
Lite).
@@ -817,6 +818,8 @@ protocol just requires bit 27 (listed as “SupportsLegacyPairing”) of the
be set. The “features” code and other settings are set in
UxPlay/lib/dnssdint.h.
ChangeLog
+1.56 2022-07-30 Remove -bt709 from -rpi, -rpiwl, -rpifb as GStreamer
+is now fixed.
1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new
-bt709 option (previous “-v4l2” is now “-v4l2 -bt709”). This allows the
currently-required -bt709 option to be used on its own on RPi without
diff --git a/README.md b/README.md
index 8813b0a..b5ca140 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# UxPlay 1.55: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix.
+# UxPlay 1.56: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix.
### Now developed at the GitHub site [https://github.com/FDH2/UxPlay](https://github.com/FDH2/UxPlay) (where all user issues should be posted).
@@ -255,18 +255,19 @@ You can also test UxPlay with software-only video decoding using option `-avdec`
improvements from GStreamer-1.22. Patches for GStreamer-1.18.4 and later
are [available with instructions in the UxPlay Wiki](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches).
-* Currently, a workaround implemented in UxPlay-1.55 as the new uxplay option `-bt709` is needed because Apple are using an uncommon "full-range color" variant of the
-"bt709" color standard used for digital TV broadcasting, which is currently not recognized by the Video4Linux2 plugin. It is planned to eventually add
-support for Apple's variant "bt709" color to GStreamer; after this has been done, this option will no longer be needed (and
-updated patches for backports will be provided in the UxPlay Wiki).
-
-The basic uxplay options for R Pi are ```uxplay -bt709 -v4l2 [-vs ]```.
+The basic uxplay options for R Pi are ```uxplay -v4l2 [-vs ]```. The
+choice `` = ``glimagesink`` is sometimes useful.
On a system without X11 (like R Pi OS Lite) with framebuffer video, use `` = ``kmssink``.
With the Wayland video compositor (as in recent Ubuntu for R Pi) use `` = ``waylandsink``. For convenience,
-these options are also available combined in options `-rpi`,``-rpifb``, ```-rpiwl```, respectively
-provided for X11, framebuffer, and Wayland systems. You may find the simple "uxplay -bt709", (which lets GStreamer try to find the best video solution by itself)
+these options are also available combined in options `-rpi`, ``-rpigl``
+``-rpifb``, ```-rpiwl```, respectively provided for X11, X11 with OpenGL, framebuffer, and Wayland systems.
+You may find the simple "uxplay", (which lets GStreamer try to find the best video solution by itself)
provides the best results.
+* **If you are not using the latest patches from the wiki, you will also need to add the `-bt709` option**: previously the GStreamer v4l2 plugin could
+not recognise Apple's color format (an unusual "full-range" variant of the bt709 HDTV standard), which -bt709 fixes.
+
+
* Tip: to start UxPlay on a remote host (such as a Raspberry Pi) using ssh:
```
@@ -448,11 +449,13 @@ which will not work if a firewall is running.
**-v4l2** Video settings for hardware h264 video decoding in the GPU by Video4Linux2. Equivalent to
`-vd v4l2h264dec -vc v4l2convert`.
-**-bt709** A workaround for the failure of the current Video4Linux2 plugin to recognize Apple's
+**-bt709** A workaround for the failure of the older Video4Linux2 plugin to recognize Apple's
use of an uncommon (but permitted) "full-range color" variant of the bt709 color standard for digital TV.
- This will no longer be needed if GStreamer is updated to recognize the Apple variant.
+ This is no longer needed by GStreamer-1.20.4 and backports from it.
-**-rpi** Equivalent to "-v4l2 -bt709". Use for "Desktop" Raspberry Pi systems with X11.
+**-rpi** Equivalent to "-v4l2 ". Use for "Desktop" Raspberry Pi systems with X11.
+
+**-rpigl** Equivalent to "-v4l2 -vs glimagesink". Sometimes better for "Desktop" Raspberry Pi systems with X11.
**-rpifb** Equivalent to "-rpi -vs kmssink" (use for Raspberry Pi systems
using the framebuffer, like RPi OS Bullseye Lite).
@@ -694,6 +697,8 @@ tvOS 12.2.1); it seems that the use of "legacy" protocol just requires bit 27 (l
The "features" code and other settings are set in `UxPlay/lib/dnssdint.h`.
# ChangeLog
+1.56 2022-07-30 Remove -bt709 from -rpi, -rpiwl, -rpifb as GStreamer is now fixed.
+
1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new -bt709 option (previous
"-v4l2" is now "-v4l2 -bt709"). This allows the currently-required -bt709
option to be used on its own on RPi without -v4l2 (sometimes this give better results).
diff --git a/README.txt b/README.txt
index a6d8cec..67db44d 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-# UxPlay 1.55: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix.
+# UxPlay 1.56: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix.
### Now developed at the GitHub site (where all user issues should be posted).
@@ -283,24 +283,22 @@ options.
and later are [available with instructions in the UxPlay
Wiki](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches).
-- Currently, a workaround implemented in UxPlay-1.55 as the new uxplay
- option `-bt709` is needed because Apple are using an uncommon
- "full-range color" variant of the "bt709" color standard used for
- digital TV broadcasting, which is currently not recognized by the
- Video4Linux2 plugin. It is planned to eventually add support for
- Apple's variant "bt709" color to GStreamer; after this has been
- done, this option will no longer be needed (and updated patches for
- backports will be provided in the UxPlay Wiki).
+The basic uxplay options for R Pi are `uxplay -v4l2 [-vs ]`.
+The choice `` = `glimagesink` is sometimes useful. On a
+system without X11 (like R Pi OS Lite) with framebuffer video, use
+`` = `kmssink`. With the Wayland video compositor (as in
+recent Ubuntu for R Pi) use `` = `waylandsink`. For
+convenience, these options are also available combined in options
+`-rpi`, `-rpigl` `-rpifb`, `-rpiwl`, respectively provided for X11, X11
+with OpenGL, framebuffer, and Wayland systems. You may find the simple
+"uxplay", (which lets GStreamer try to find the best video solution by
+itself) provides the best results.
-The basic uxplay options for R Pi are
-`uxplay -bt709 -v4l2 [-vs ]`. On a system without X11 (like R
-Pi OS Lite) with framebuffer video, use `` = `kmssink`. With
-the Wayland video compositor (as in recent Ubuntu for R Pi) use
-`` = `waylandsink`. For convenience, these options are also
-available combined in options `-rpi`,`-rpifb`, `-rpiwl`, respectively
-provided for X11, framebuffer, and Wayland systems. You may find the
-simple "uxplay -bt709", (which lets GStreamer try to find the best video
-solution by itself) provides the best results.
+- **If you are not using the latest patches from the wiki, you will
+ also need to add the `-bt709` option**: previously the GStreamer
+ v4l2 plugin could not recognise Apple's color format (an unusual
+ "full-range" variant of the bt709 HDTV standard), which -bt709
+ fixes.
- Tip: to start UxPlay on a remote host (such as a Raspberry Pi) using
ssh:
@@ -528,14 +526,16 @@ Airplay non-mirror mode.
**-v4l2** Video settings for hardware h264 video decoding in the GPU by
Video4Linux2. Equivalent to `-vd v4l2h264dec -vc v4l2convert`.
-**-bt709** A workaround for the failure of the current Video4Linux2
-plugin to recognize Apple's use of an uncommon (but permitted)
-"full-range color" variant of the bt709 color standard for digital TV.
-This will no longer be needed if GStreamer is updated to recognize the
-Apple variant.
+**-bt709** A workaround for the failure of the older Video4Linux2 plugin
+to recognize Apple's use of an uncommon (but permitted) "full-range
+color" variant of the bt709 color standard for digital TV. This is no
+longer needed by GStreamer-1.20.4 and backports from it.
-**-rpi** Equivalent to "-v4l2 -bt709". Use for "Desktop" Raspberry Pi
-systems with X11.
+**-rpi** Equivalent to "-v4l2". Use for "Desktop" Raspberry Pi systems
+with X11.
+
+**-rpigl** Equivalent to "-v4l2 -vs glimagesink". Sometimes better for
+"Desktop" Raspberry Pi systems with X11.
**-rpifb** Equivalent to "-rpi -vs kmssink" (use for Raspberry Pi
systems using the framebuffer, like RPi OS Bullseye Lite).
@@ -849,6 +849,9 @@ code and other settings are set in `UxPlay/lib/dnssdint.h`.
# ChangeLog
+1.56 2022-07-30 Remove -bt709 from -rpi, -rpiwl, -rpifb as GStreamer is
+now fixed.
+
1.55 2022-07-04 Remove the bt709 fix from -v4l2 and create a new -bt709
option (previous "-v4l2" is now "-v4l2 -bt709"). This allows the
currently-required -bt709 option to be used on its own on RPi without
diff --git a/uxplay.1 b/uxplay.1
index 8191971..0ecff30 100644
--- a/uxplay.1
+++ b/uxplay.1
@@ -1,11 +1,11 @@
-.TH UXPLAY "1" "July 2022" "1.55" "User Commands"
+.TH UXPLAY "1" "August 2022" "1.56" "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.55: An open\-source AirPlay mirroring server based on RPiPlay
+UxPlay 1.56: An open\-source AirPlay mirroring server based on RPiPlay
.SH OPTIONS
.TP
.B
@@ -54,9 +54,11 @@ UxPlay 1.55: An open\-source AirPlay mirroring server based on RPiPlay
.TP
\fB\-v4l2\fR Use Video4Linux2 for GPU hardware h264 video decoding.
.TP
-\fB\-bt709\fR A workaround (bt709 color) that may be needed with -v4l2.
+\fB\-bt709\fR A workaround (bt709 color) that may be needed with -rpi.
.TP
-\fB\-rpi\fR Same as "-v4l2 -bt709" (for RPi=Rasberry Pi).
+\fB\-rpi\fR Same as "-v4l2" (for RPi=Rasberry Pi).
+.TP
+\fB\-rpigl\fR Same as "-v4l2 -vs glimagesink" for RPi.
.TP
\fB\-rpifb\fR Same as "-rpi -vs kmssink" for RPi using framebuffer.
.TP
diff --git a/uxplay.cpp b/uxplay.cpp
index b071092..1c1bc78 100644
--- a/uxplay.cpp
+++ b/uxplay.cpp
@@ -43,7 +43,7 @@
#include "renderers/video_renderer.h"
#include "renderers/audio_renderer.h"
-#define VERSION "1.55"
+#define VERSION "1.56"
#define DEFAULT_NAME "UxPlay"
#define DEFAULT_DEBUG_LOG false
@@ -343,8 +343,9 @@ static void print_info (char *name) {
printf(" gtksink,waylandsink,osximagesink,kmssink,fpsdisplaysink etc.\n");
printf("-vs 0 Streamed audio only, with no video display window\n");
printf("-v4l2 Use Video4Linux2 for GPU hardware h264 decoding\n");
- printf("-bt709 A workaround (bt709 color) that may be needed with -v4l2\n");
- printf("-rpi Same as \"-v4l2 -bt709\" (for RPi=Raspberry Pi).\n");
+ printf("-bt709 A workaround (bt709 color) that may be needed with -rpi\n");
+ printf("-rpi Same as \"-v4l2\" (for RPi=Raspberry Pi).\n");
+ printf("-rpigl Same as \"-rpi -vs glimagesink\" for RPi.\n");
printf("-rpifb Same as \"-rpi -vs kmssink\" for RPi using framebuffer.\n");
printf("-rpiwl Same as \"-rpi -vs waylandsink\" for RPi using Wayland.\n");
printf("-as ... Choose the GStreamer audiosink; default \"autoaudiosink\"\n");
@@ -602,22 +603,30 @@ void parse_arguments (int argc, char *argv[]) {
video_converter = "videoconvert";
} else if (arg == "-v4l2" || arg == "-rpi") {
if (arg == "-rpi") {
- bt709_fix = true;
+ printf("*** -rpi no longer includes -bt709: add it if needed\n");
}
video_decoder.erase();
video_decoder = "v4l2h264dec";
video_converter.erase();
video_converter = "v4l2convert";
} else if (arg == "-rpifb") {
- bt709_fix = true;
+ printf("*** -rpifb no longer includes -bt709: add it if needed\n");
video_decoder.erase();
video_decoder = "v4l2h264dec";
video_converter.erase();
video_converter = "v4l2convert";
videosink.erase();
videosink = "kmssink";
+ } else if (arg == "-rpigl") {
+ printf("*** -rpigl does not include -bt709: add it if needed\n");
+ video_decoder.erase();
+ video_decoder = "v4l2h264dec";
+ video_converter.erase();
+ video_converter = "v4l2convert";
+ videosink.erase();
+ videosink = "glimagesink";
} else if (arg == "-rpiwl" ) {
- bt709_fix = true;;
+ printf("*** -rpiwl no longer includes -bt709: add it if needed\n");
video_decoder.erase();
video_decoder = "v4l2h264dec";
video_converter.erase();