edits to manpage and help message about kmssink

This commit is contained in:
fduncanh
2022-03-13 11:30:11 -04:00
parent f71e24e994
commit 6878920912
5 changed files with 20 additions and 18 deletions

View File

@@ -21,7 +21,7 @@
<p>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 NVIDIAs proprietary <a href="https://docs.nvidia.com/video-technologies/video-codec-sdk/nvdec-video-decoder-api-prog-guide/">Video Codec SDK</a> 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 <a href="https://gist.github.com/corenel/a615b6f7eb5b5425aa49343a7b409200">these instructions</a>, and adapt them as necessary for your GStreamer installation. This plugin should be used with the <code>-vd nvdec</code> (or nvh264dec) and <code>-vs glimagesink</code> uxplay options.</p>
<ul>
<li><p><strong>GPU Support for Raspberry Pi</strong></p>
<p>Raspberry Pi computers can run UxPlay with software decoding of h264 video (options <code>uxplay -rpi -avdec</code>) but this usually has unacceptible latency, and hardware-accelerated decoding by the Pis built-in Broadcom GPU should be used. UxPlays antecedent <a href="http://github.com/FD-/RPiPlay">RPiPlay</a> 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 available <a href="https://github.com/FDH2/UxPlay/issues/70">here</a>, until distributions release them as updates, and work well with UxPlay, using a new option <code>uxplay -rpi</code> (tested on R Pi model 4B)</p></li>
<p>Raspberry Pi computers can run UxPlay with software decoding of h264 video (options <code>uxplay -rpi -avdec</code>) but this usually has unacceptible latency, and hardware-accelerated decoding by the Pis built-in Broadcom GPU should be used. UxPlays antecedent <a href="http://github.com/FD-/RPiPlay">RPiPlay</a> 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 (R Pi OS Bullseye), 1.18.5 (Ubuntu 21.10) and 1.20.0 (Manjaro) are now available <a href="https://github.com/FDH2/UxPlay/issues/70">here</a>, until distributions release them as updates, and work well with UxPlay, using a new option <code>uxplay -rpi</code> (tested on R Pi model 4B). When using R Pi OS Lite (no X11), use uxplay -rpi -vs kmssink`.</p></li>
</ul>
<h3 id="note-to-packagers-openssl-3.0.0-solves-gpl-v3-license-issues.">Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.</h3>
<p>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.</p>
@@ -92,7 +92,7 @@
<p><strong>-vp <em>parser</em></strong> choses the GStreamer pipelines h264 parser element, default is h264parse. Using quotes “…” allows options to be added.</p>
<p><strong>-vd <em>decoder</em></strong> chooses the GStreamer pipelines 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.</p>
<p><strong>-vc <em>converter</em></strong> chooses the GStreamer pipelines videoconverter element, instead of the default value “videoconvert”. When using video4linux hardware decoding by a GPU,<code>-vc v4l2convert</code> will also use the GPU for video conversion. Using quotes “…” allows some parameters to be included with the converter name.</p>
<p><strong>-vs <em>videosink</em></strong> 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, <strong>fullscreen</strong> mode is supported by the vaapisink plugin, and is obtained using <code>-vs "vaapisink fullscreen=true"</code>; this also works with <code>waylandsink</code>. The syntax of such options is specific to a given plugin, and some choices of videosink might not work on your system.</p>
<p><strong>-vs <em>videosink</em></strong> 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, <strong>fullscreen</strong> mode is supported by the vaapisink plugin, and is obtained using <code>-vs "vaapisink fullscreen=true"</code>; this also works with <code>waylandsink</code>. The syntax of such options is specific to a given plugin, and some choices of videosink might not work on your system.</p>
<p><strong>-vs 0</strong> suppresses display of streamed video, but plays streamed audio. (The clients 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.</p>
<p><strong>-rpi</strong> 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 <code>uxplay -rpi -avdec</code>). Uses the glimagesink videosink.</p>
<p><strong>-avdec</strong> 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.</p>

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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");