From 6878920912a4d75629cda70ea89b351dc1f50fd0 Mon Sep 17 00:00:00 2001 From: fduncanh Date: Sun, 13 Mar 2022 11:30:11 -0400 Subject: [PATCH] edits to manpage and help message about kmssink --- README.html | 4 ++-- README.md | 8 ++++---- README.txt | 22 ++++++++++++---------- uxplay.1 | 2 +- uxplay.cpp | 2 +- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/README.html b/README.html index ccffd68..1442095 100644 --- a/README.html +++ b/README.html @@ -21,7 +21,7 @@

For NVIDIA graphics with the proprietary drivers, the nvdec plugin (recently renamed nvh264dec) can be used for accelerated video decoding on the NVIDIA GPU with CUDA. The nvdec plugin is part of gstreamer1.0-plugins-bad, but is generally not included in binary packages, as NVIDIA’s proprietary Video Codec SDK must be downloaded, and three header files from it must be added to the gstreamer source before the plugin can be compiled. Users must do this themselves: see these instructions, and adapt them as necessary for your GStreamer installation. This plugin should be used with the -vd nvdec (or nvh264dec) and -vs glimagesink uxplay options.

Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.

Some Linux distributions such as Debian do not allow distribution of compiled GPL code linked to OpenSSL-1.1.1 because its “dual OpenSSL/SSLeay” license has some incompatibilities with GPL, unless all code authors have explicitly given an “exception” to allow such linking (the historical origins of UxPlay make this impossible to obtain). Other distributions treat OpenSSL as a “System Library” which the GPL allows linking to.

@@ -92,7 +92,7 @@

-vp parser choses the GStreamer pipeline’s h264 parser element, default is h264parse. Using quotes “…” allows options to be added.

-vd decoder chooses the GStreamer pipeline’s h264 decoder element, instead of letting decodebin pick it for you. Software decoding is done by avdec_h264; various hardware decoders include: vaapi264dec, nvdec, nvh264dec, v4l2h264dec (these require that the appropriate hardware is available). Using quotes “…” allows some parameters to be included with the decoder name.

-vc converter chooses the GStreamer pipeline’s videoconverter element, instead of the default value “videoconvert”. When using video4linux hardware decoding by a GPU,-vc v4l2convert will also use the GPU for video conversion. Using quotes “…” allows some parameters to be included with the converter name.

-

-vs videosink chooses the GStreamer videosink, instead of letting autovideosink pick it for you. Some videosink choices are: ximagesink, xvimagesink, vaapisink (for intel graphics), gtksink, glimagesink, waylandsink, osximagesink (for macOS), or fpsdisplaysink (which shows the streaming framerate in fps). Using quotes “…” allows some parameters to be included with the videosink name. For example, fullscreen mode is supported by the vaapisink plugin, and is obtained using -vs "vaapisink fullscreen=true"; this also works with waylandsink. The syntax of such options is specific to a given plugin, and some choices of videosink might not work on your system.

+

-vs videosink chooses the GStreamer videosink, instead of letting autovideosink pick it for you. Some videosink choices are: ximagesink, xvimagesink, vaapisink (for intel graphics), gtksink, glimagesink, waylandsink, osximagesink (for macOS), kmssink (for systems without X11, like Raspberry Pi OS lite) or fpsdisplaysink (which shows the streaming framerate in fps). Using quotes “…” allows some parameters to be included with the videosink name. For example, fullscreen mode is supported by the vaapisink plugin, and is obtained using -vs "vaapisink fullscreen=true"; this also works with waylandsink. The syntax of such options is specific to a given plugin, and some choices of videosink might not work on your system.

-vs 0 suppresses display of streamed video, but plays streamed audio. (The client’s screen is still mirrored at a reduced rate of 1 frame per second, but is not rendered or displayed.) This feature (which streams audio in AAC audio format) is now probably unneeded, as UxPlay can now stream superior-quality Apple Lossless audio without video in Airplay non-mirror mode.

-rpi Video settings for Raspberry Pi, for hardware h264 video decoding in the GPU (requires the video4linux2 plugin from GStreamer-1.21.0 or later, or a backported patched version of an earlier release. (If this is unavailable, use uxplay -rpi -avdec). Uses the glimagesink videosink.

-avdec forces use of software h264 decoding using Gstreamer element avdec_h264 (libav h264 decoder). This option should prevent autovideosink choosing a hardware-accelerated videosink plugin such as vaapisink.

diff --git a/README.md b/README.md index b4fedb0..080b78a 100644 --- a/README.md +++ b/README.md @@ -84,10 +84,10 @@ This plugin should be used with the `-vd nvdec` (or nvh264dec) and `-vs glimages has unacceptible latency, and hardware-accelerated decoding by the Pi's built-in Broadcom GPU should be used. UxPlay's antecedent [RPiPlay](http://github.com/FD-/RPiPlay) was developed to use the 32-bit-only omx (OpenMAX) driver for this, but omx has recently been declared obsolete and abandoned in "legacy" status by Raspberry Pi OS (Bullseye). The GStreamer plugin for its - replacement v4l2 (Video4Linux2) has until recently been unusable with UxPlay, but new fixes in the GStreamer - development branch have changed this. Backports (as patches) to GStreamer 1.18.4 (Bullseye) and 1.20.0 (Manjaro) are now + replacement v4l2 (Video4Linux2) has until recently been unusable with UxPlay, but new fixes in the GStreamer development branch have + changed this. Backports (as patches) to GStreamer 1.18.4 (R Pi OS Bullseye), 1.18.5 (Ubuntu 21.10) and 1.20.0 (Manjaro) are now available [here](https://github.com/FDH2/UxPlay/issues/70), until distributions release them as updates, and work well with UxPlay, - using a new option `uxplay -rpi` (tested on R Pi model 4B) + using a new option `uxplay -rpi` (tested on R Pi model 4B). When using R Pi OS Lite (no X11), use 'uxplay -rpi -vs kmssink`. ### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues. @@ -366,7 +366,7 @@ Also: image transforms that had been added to RPiPlay have been ported to UxPlay **-vs _videosink_** chooses the GStreamer videosink, instead of letting autovideosink pick it for you. Some videosink choices are: ximagesink, xvimagesink, - vaapisink (for intel graphics), gtksink, glimagesink, waylandsink, osximagesink (for macOS), or + vaapisink (for intel graphics), gtksink, glimagesink, waylandsink, osximagesink (for macOS), kmssink (for systems without X11, like Raspberry Pi OS lite) or fpsdisplaysink (which shows the streaming framerate in fps). Using quotes "..." allows some parameters to be included with the videosink name. For example, **fullscreen** mode is supported by the vaapisink plugin, and is diff --git a/README.txt b/README.txt index d2cee9a..1884e53 100644 --- a/README.txt +++ b/README.txt @@ -114,11 +114,12 @@ uxplay options. OS (Bullseye). The GStreamer plugin for its replacement v4l2 (Video4Linux2) has until recently been unusable with UxPlay, but new fixes in the GStreamer development branch have changed this. - Backports (as patches) to GStreamer 1.18.4 (Bullseye) and 1.20.0 - (Manjaro) are now available + Backports (as patches) to GStreamer 1.18.4 (R Pi OS Bullseye), + 1.18.5 (Ubuntu 21.10) and 1.20.0 (Manjaro) are now available [here](https://github.com/FDH2/UxPlay/issues/70), until distributions release them as updates, and work well with UxPlay, - using a new option `uxplay -rpi` (tested on R Pi model 4B) + using a new option `uxplay -rpi` (tested on R Pi model 4B). When + using R Pi OS Lite (no X11), use 'uxplay -rpi -vs kmssink\`. ### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues. @@ -479,13 +480,14 @@ to be included with the converter name. **-vs *videosink*** chooses the GStreamer videosink, instead of letting autovideosink pick it for you. Some videosink choices are: ximagesink, xvimagesink, vaapisink (for intel graphics), gtksink, glimagesink, -waylandsink, osximagesink (for macOS), or fpsdisplaysink (which shows -the streaming framerate in fps). Using quotes "..." allows some -parameters to be included with the videosink name. For example, -**fullscreen** mode is supported by the vaapisink plugin, and is -obtained using `-vs "vaapisink fullscreen=true"`; this also works with -`waylandsink`. The syntax of such options is specific to a given plugin, -and some choices of videosink might not work on your system. +waylandsink, osximagesink (for macOS), kmssink (for systems without X11, +like Raspberry Pi OS lite) or fpsdisplaysink (which shows the streaming +framerate in fps). Using quotes "..." allows some parameters to be +included with the videosink name. For example, **fullscreen** mode is +supported by the vaapisink plugin, and is obtained using +`-vs "vaapisink fullscreen=true"`; this also works with `waylandsink`. +The syntax of such options is specific to a given plugin, and some +choices of videosink might not work on your system. **-vs 0** suppresses display of streamed video, but plays streamed audio. (The client's screen is still mirrored at a reduced rate of 1 diff --git a/uxplay.1 b/uxplay.1 index 53d2e99..b42bc86 100644 --- a/uxplay.1 +++ b/uxplay.1 @@ -53,7 +53,7 @@ UxPlay 1.48: An open\-source AirPlay mirroring server based on RPiPlay .IP choices: ximagesink,xvimagesink,vaapisink,glimagesink, .IP - gtksink,waylandsink,osximagesink,fpsdisplaysink,... + gtksink,waylandsink,osximagesink,kmssink,fpsdisplaysink,... .PP .TP \fB\-vs\fR 0 Streamed audio only, with no video display window. diff --git a/uxplay.cpp b/uxplay.cpp index cf55a47..8ba21ef 100644 --- a/uxplay.cpp +++ b/uxplay.cpp @@ -236,7 +236,7 @@ static void print_info (char *name) { printf(" another choice when using v4l2h264decode: v4l2convert\n"); printf("-vs ... Choose the GStreamer videosink; default \"autovideosink\"\n"); printf(" some choices: ximagesink,xvimagesink,vaapisink,glimagesink,\n"); - printf(" gtksink,waylandsink,osximagesink,fpsdisplaysink, etc.\n"); + printf(" gtksink,waylandsink,osximagesink,kmssink,fpsdisplaysink etc.\n"); printf("-vs 0 Streamed audio only, with no video display window\n"); printf("-rpi Video settings for Raspberry Pi (for GPU h264 decoding).\n"); printf("-avdec Force software h264 video decoding with libav decoder\n");