diff --git a/CMakeLists.txt b/CMakeLists.txt
index c455926..d2c33b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,6 @@ include(GNUInstallDirs)
set ( CMAKE_CXX_STANDARD 11 )
if ( ZOOMFIX )
-add_definitions( -DX_DISPLAY_FIX )
find_package( X11 REQUIRED )
link_libraries( ${X11_LIBRARIES} )
include_directories( ${X11_INCLUDE_DIR} )
diff --git a/README.html b/README.html
index 2f2af64..a5e3977 100644
--- a/README.html
+++ b/README.html
@@ -232,7 +232,9 @@ development libraries to be installed: on Debian-based systems do this
with “sudo apt-get install libx11-dev” . “ZOOMFIX” is not
needed on macOS, or if you are using non-X11 windows (such as OpenGL) on
Linux. See ZOOMFIX compile-time
-option below for more information, and alternatives to “ZOOMFIX”
+option below for more information, and alternatives to “ZOOMFIX”.
+
sudo apt-get install libssl-dev libplist-dev“. (unless
you need to build OpenSSL and libplist from source).
@@ -242,7 +244,7 @@ modify the source, replace this by
“mkdir build; cd build; cmake ..”: you can then delete the
build directory if needed, without affecting the source.)
Also add any cmake “-D” options here as needed (e.g,
-ZOOMFIX=ON or NO_MARCH_NATIVE=ON).
+-DZOOMFIX=ON or -DNO_MARCH_NATIVE=ON).
make
sudo make install (you can afterwards uninstall with
sudo make uninstall in the same directory in which this was
@@ -319,7 +321,7 @@ href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches"
with instructions in the UxPlay Wiki.
The basic uxplay options for R Pi are
-uxplay -v4l2 [-vs <videosink>]. The choice
+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
@@ -566,8 +568,8 @@ used.
ability to toggle into and out of fullscreen mode using the Alt-Enter
key combination with option
-vs "d3d11videosink fullscreen-toggle-mode=alt-enter". For
-convenience, this option will always be set if
-“-vs d3d11videosink” is used.
+convenience, this option will be added if just
+-vs d3d11videosink (by itself) is used.
The executable uxplay.exe can also be run without the MSYS2
environment, in the Windows Terminal, with
C:\msys64\mingw64\bin\uxplay.
@@ -658,7 +660,7 @@ 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”.
+
-rpigl Equivalent to “-rpi -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
diff --git a/README.md b/README.md
index 7dcbf29..f6e56f4 100644
--- a/README.md
+++ b/README.md
@@ -197,7 +197,7 @@ as Zoom, you should use the cmake option "` -DZOOMFIX=ON`" in step 3. This requ
the X11 development libraries to be installed: on Debian-based systems do this with "`sudo apt-get install libx11-dev`" .
"ZOOMFIX" is not needed on macOS, or if you are using non-X11 windows
(such as OpenGL) on Linux. See [ZOOMFIX compile-time option](#zoomfix-compile-time-option) below for more information,
-and alternatives to "ZOOMFIX"
+and alternatives to "ZOOMFIX". **ZOOMFIX will NOT be applied if GStreamer >= 1.20 is found.**
1. `sudo apt-get install libssl-dev libplist-dev`".
(unless you need to build OpenSSL and libplist from source).
@@ -205,7 +205,7 @@ and alternatives to "ZOOMFIX"
3. `cmake .` (For a cleaner build, which is useful if you modify the source, replace this
by "``mkdir build; cd build; cmake ..``": you can then delete the
`build` directory if needed, without affecting the source.) Also add any cmake "`-D`" options
- here as needed (e.g, ZOOMFIX=ON or NO_MARCH_NATIVE=ON).
+ here as needed (e.g, `-DZOOMFIX=ON` or ``-DNO_MARCH_NATIVE=ON``).
4. `make`
5. `sudo make install` (you can afterwards uninstall with ``sudo make uninstall``
in the same directory in which this was run).
@@ -270,7 +270,7 @@ You can also test UxPlay with software-only video decoding using option `-avdec`
improvements from GStreamer-1.22. Raspberry Pi OS (Bullseye) now has the needed backports. For other distributions, patches for GStreamer
are [available with instructions in the UxPlay Wiki](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches).
-The basic uxplay options for R Pi are ```uxplay -v4l2 [-vs ]```. The
+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, use `` = ``waylandsink``. For convenience,
@@ -474,7 +474,7 @@ default audio device is used.
If you wish to specify the videosink using the `-vs ` option, some choices for `` are
`d3d11videosink`, ``d3dvideosink``, ```glimagesink```,
`gtksink`. With Direct3D 11.0 or greater, you can get the ability to toggle into and out of fullscreen mode using the Alt-Enter key combination with
-option `-vs "d3d11videosink fullscreen-toggle-mode=alt-enter"`. For convenience, this option will always be set if "``-vs d3d11videosink``" is used.
+option `-vs "d3d11videosink fullscreen-toggle-mode=alt-enter"`. For convenience, this option will be added if just ``-vs d3d11videosink`` (by itself) is used.
The executable uxplay.exe can also be run without the MSYS2 environment, in
the Windows Terminal, with `C:\msys64\mingw64\bin\uxplay`.
@@ -562,7 +562,7 @@ which will not work if a firewall is running.
**-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.
+**-rpigl** Equivalent to "-rpi -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).
diff --git a/README.txt b/README.txt
index 7dd3cc9..6369b89 100644
--- a/README.txt
+++ b/README.txt
@@ -236,7 +236,8 @@ libraries to be installed: on Debian-based systems do this with
"`sudo apt-get install libx11-dev`" . "ZOOMFIX" is not needed on macOS,
or if you are using non-X11 windows (such as OpenGL) on Linux. See
[ZOOMFIX compile-time option](#zoomfix-compile-time-option) below for
-more information, and alternatives to "ZOOMFIX"
+more information, and alternatives to "ZOOMFIX". **ZOOMFIX will NOT be
+applied if GStreamer \>= 1.20 is found.**
1. `sudo apt-get install libssl-dev libplist-dev`". (unless you need to
build OpenSSL and libplist from source).
@@ -245,7 +246,7 @@ more information, and alternatives to "ZOOMFIX"
source, replace this by "`mkdir build; cd build; cmake ..`": you can
then delete the `build` directory if needed, without affecting the
source.) Also add any cmake "`-D`" options here as needed (e.g,
- ZOOMFIX=ON or NO_MARCH_NATIVE=ON).
+ `-DZOOMFIX=ON` or `-DNO_MARCH_NATIVE=ON`).
4. `make`
5. `sudo make install` (you can afterwards uninstall with
`sudo make uninstall` in the same directory in which this was run).
@@ -319,16 +320,17 @@ options.
GStreamer are [available with instructions in the UxPlay
Wiki](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches).
-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, 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 that just "`uxplay`", (*without* `-v4l2` or
-`-rpi*` options, 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 [-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, 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 that just
+"`uxplay`", (*without* `-v4l2` or `-rpi*` options, which lets GStreamer
+try to find the best video solution by itself) provides the best
+results.
- **For UxPlay-1.56 and later, if you are not using the latest
GStreamer patches from the Wiki, you will need to use the UxPlay
@@ -576,8 +578,8 @@ some choices for `` are `d3d11videosink`, `d3dvideosink`,
ability to toggle into and out of fullscreen mode using the Alt-Enter
key combination with option
`-vs "d3d11videosink fullscreen-toggle-mode=alt-enter"`. For
-convenience, this option will always be set if "`-vs d3d11videosink`" is
-used.
+convenience, this option will be added if just `-vs d3d11videosink` (by
+itself) is used.
The executable uxplay.exe can also be run without the MSYS2 environment,
in the Windows Terminal, with `C:\msys64\mingw64\bin\uxplay`.
@@ -680,7 +682,7 @@ 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
+**-rpigl** Equivalent to "-rpi -vs glimagesink". Sometimes better for
"Desktop" Raspberry Pi systems with X11.
**-rpifb** Equivalent to "-rpi -vs kmssink" (use for Raspberry Pi
diff --git a/renderers/CMakeLists.txt b/renderers/CMakeLists.txt
index 84ae01b..f66fea8 100644
--- a/renderers/CMakeLists.txt
+++ b/renderers/CMakeLists.txt
@@ -10,7 +10,17 @@ if (APPLE )
endif()
find_package( PkgConfig REQUIRED )
-pkg_check_modules(GST REQUIRED gstreamer-1.0>=1.4
+if (ZOOMFIX)
+ pkg_check_modules (GST120 gstreamer-1.0>=1.20)
+ if ( GST120_FOUND )
+ message( "-- Requested ZOOMFIX will NOT be applied as Gstreamer version is >= 1.20" )
+ else()
+ message( "-- Requested ZOOMFIX will be applied as Gstreamer version is < 1.20" )
+ add_definitions( -DX_DISPLAY_FIX )
+ endif()
+endif()
+
+pkg_check_modules(GST REQUIRED gstreamer-1.0>=1.4
gstreamer-sdp-1.0>=1.4
gstreamer-video-1.0>=1.4
gstreamer-app-1.0>=1.4