diff --git a/README.html b/README.html index d63be99..7feb6de 100644 --- a/README.html +++ b/README.html @@ -18,9 +18,7 @@

UxPlay uses GStreamer Plugins for rendering audio and video, This means that video and audio are supported “out of the box”, using a choice of plugins. AirPlay streams video in h264 format: gstreamer decoding is plugin agnostic, and uses accelerated GPU hardware h264 decoders if available; if not, software decoding is used.

For systems with Intel integrated graphics, hardware GPU decoding with the gstreamer VAAPI plugin is preferable. VAAPI is open-source, and in addition to Intel, can support some AMD GPU’s (the open-source “Nouveau” drivers for NVIDIA graphics are also in principle supported when VAAPI is supplemented with firmware extracted from the proprietary NVIDIA drivers).

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.

- +

The Raspberry Pi has a Broadcom GPU which is needed for hardware-accelerated h264 decoding, as UxPlay has unacceptible latency on the Pi when software decoding is used. The Pi has been supported by RPiPlay using omx (OpenMAX) drivers. These 32-bit drivers are deprecated, and were recently removed from Raspberry Pi OS (Bullseye). The designated replacement for OpenMAX is Video4linux2, and the options that should provide hardware decoding with UxPlay are -vd v4l2h264dec (best supplemented with -vc v4l2convert), which is a plugin from gstreamer1.0-plugins-good. Unfortunately, with this plugin GStreamer “caps negotiation” usually fails; a workaround has not yet been found. This is currently an open Issue. ** UxPlay support for the Pi may need to wait for a fix to the v4l2 plugin.**

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.

For “GPL-strict” distributions, UxPlay can be built using OpenSSL- 3.0.0, which has a new GPLv3-compatible license.

diff --git a/README.md b/README.md index c975d2e..75581d2 100644 --- a/README.md +++ b/README.md @@ -76,22 +76,14 @@ Users must do this themselves: see [these instructions](https://gist.github.com/ adapt them as necessary for your GStreamer installation. This plugin should be used with the `-vd nvdec` (or nvh264dec) and `-vs glimagesink` uxplay options. -* **possible support for Raspberry Pi** (_not working_): the CPU of the Raspberry Pi is not powerful - enough for GStreamer to decode the h264 video stream using software decoding (option `-avdec` ) without unacceptable latency. - The Pi has a Broadcom GPU for accelerated hardware h264 decoding, and in the past this has been - supported by [RPiPlay](https://github.com/FD-/RPiPlay) using the deprecated 32-bit omx (OpenMax) driver. Unfortunately, with the move - to a 64-bit OS, this has been removed from recent Raspberry Pi OS (Bullseye), and there has been user interest in making UxPlay work on the Pi. - The designated replacement for OpenMAX is Video4linux2, and the options that - _should_ work with UxPlay are `-vd v4l2h264dec -vc v4l2convert`, which are from gstreamer1.0-plugins-good. - This has occasionally worked, and when it did, it worked well, with no - appreciable latency. Unfortunately, the v4l2h264dec GStreamer plugin usually fails to match the "caps" (capacities) of the h264 - source to the videosink, and h264 hardware decoding fails. It is - not clear whether there is any workaround before an updated v4l2h264dec plugin becomes available. GStreamer-knowledgeable users - who wish to experiment can see if any video pipeline modifications can provide a workaround: - the pipeline is ` (video stream from appsrc) ... ! h264parse ! decodebin ! videoconvert ! autovideosink ... `; the elements h264parse, - decodebin, videoconvert, and autovideosink can respectively be modified with options -vp, -vd, -vc, and -vs. Please report any successes! - (See [this](https://github.com/raspberrypi/firmware/issues/1673), which suggests some workaround involving "capssetter" might be possible; - `export GST_DEBUG=GST_CAPS:5` may be useful in debugging the pipeline.) +The Raspberry Pi has a Broadcom GPU which is needed for hardware-accelerated h264 decoding, as UxPlay has unacceptible latency +on the Pi when software decoding is used. The Pi has been supported by [RPiPlay](http://github.com/FD-/RPiPlay) using omx (OpenMAX) +drivers. These 32-bit drivers are deprecated, and were recently removed from Raspberry Pi OS (Bullseye). +The designated replacement for OpenMAX is Video4linux2, and the options that _should_ provide hardware decoding with UxPlay +are `-vd v4l2h264dec` +(best supplemented with `-vc v4l2convert`), which is a plugin from gstreamer1.0-plugins-good. +Unfortunately, with this plugin GStreamer "caps negotiation" usually fails; a workaround has not yet been found. This is currently +an open [Issue](https://github.com/FDH2/UxPlay/issues/70). ** UxPlay support for the Pi may need to wait for a fix to the v4l2 plugin.** ### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues. diff --git a/README.txt b/README.txt index 7dd2402..fb60765 100644 --- a/README.txt +++ b/README.txt @@ -100,35 +100,19 @@ 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. -- **possible support for Raspberry Pi** (*not working*): the CPU of - the Raspberry Pi is not powerful enough for GStreamer to decode the - h264 video stream using software decoding (option `-avdec` ) without - unacceptable latency. The Pi has a Broadcom GPU for accelerated - hardware h264 decoding, and in the past this has been supported by - [RPiPlay](https://github.com/FD-/RPiPlay) using the deprecated - 32-bit omx (OpenMax) driver. Unfortunately, with the move to a - 64-bit OS, this has been removed from recent Raspberry Pi OS - (Bullseye), and there has been user interest in making UxPlay work - on the Pi. The designated replacement for OpenMAX is Video4linux2, - and the options that *should* work with UxPlay are - `-vd v4l2h264dec -vc v4l2convert`, which are from - gstreamer1.0-plugins-good. This has occasionally worked, and when it - did, it worked well, with no appreciable latency. Unfortunately, the - v4l2h264dec GStreamer plugin usually fails to match the "caps" - (capacities) of the h264 source to the videosink, and h264 hardware - decoding fails. It is not clear whether there is any workaround - before an updated v4l2h264dec plugin becomes available. - GStreamer-knowledgeable users who wish to experiment can see if any - video pipeline modifications can provide a workaround: the pipeline - is - `(video stream from appsrc) ... ! h264parse ! decodebin ! videoconvert ! autovideosink ...`; - the elements h264parse, decodebin, videoconvert, and autovideosink - can respectively be modified with options -vp, -vd, -vc, and - -vs. Please report any successes! (See - [this](https://github.com/raspberrypi/firmware/issues/1673), which - suggests some workaround involving "capssetter" might be possible; - `export GST_DEBUG=GST_CAPS:5` may be useful in debugging the - pipeline.) +The Raspberry Pi has a Broadcom GPU which is needed for +hardware-accelerated h264 decoding, as UxPlay has unacceptible latency +on the Pi when software decoding is used. The Pi has been supported by +[RPiPlay](http://github.com/FD-/RPiPlay) using omx (OpenMAX) drivers. +These 32-bit drivers are deprecated, and were recently removed from +Raspberry Pi OS (Bullseye). The designated replacement for OpenMAX is +Video4linux2, and the options that *should* provide hardware decoding +with UxPlay are `-vd v4l2h264dec` (best supplemented with +`-vc v4l2convert`), which is a plugin from gstreamer1.0-plugins-good. +Unfortunately, with this plugin GStreamer "caps negotiation" usually +fails; a workaround has not yet been found. This is currently an open +[Issue](https://github.com/FDH2/UxPlay/issues/70). \*\* UxPlay support +for the Pi may need to wait for a fix to the v4l2 plugin.\*\* ### Note to packagers: OpenSSL-3.0.0 solves GPL v3 license issues.