use gst_macos fix for "Official" GStreamer >= 1.22 packages

This commit is contained in:
F. Duncanh
2023-09-25 01:14:14 -04:00
parent 6350794fac
commit e475a61885
6 changed files with 99 additions and 77 deletions

View File

@@ -518,11 +518,10 @@ so you don't have to install one.) Install both the gstreamer-1.0 and gstreamer-
to install (they install to /Library/FrameWorks/GStreamer.framework). Homebrew or MacPorts users should **not** install (or should uninstall)
the GStreamer supplied by their package manager, if they use the "official" release.
* **ADDED 2023-01-25: in the current 1.22.x releases something in the GStreamer macOS binaries appears to not be
working (UxPlay starts receiving the AirPlay stream, but the video window does not open)**. If
you have this problem, use the older GStreamer-1.20.7 binary packages until a fix is found. _You could instead
compile the "official" GStreamer-1.22.x release from source: GStreamer-1.22.0 has been successfully
built this way on a system using MacPorts: see_ [the UxPlay Wiki](https://github.com/FDH2/UxPlay/wiki/Building-GStreamer-from-Source-on-macOS-with-MacPorts).
* Since GStreamer v1.22, the "Official" (gstreamer.freedesktop.org) macOS binaries require a wrapper "gst_macos_main"
around the actual main program (uxplay). This should have been applied during the UxPlay compilation process, and
the initial UxPlay terminal message should confirm it is being used. (UxPlay can also be built using "Official" GStreamer v.1.20.7
binaries, which work without the wrapper.)
**Using Homebrew's GStreamer**: pkg-config is needed: ("brew install pkg-config gstreamer").
This causes a large number of extra packages to be installed by Homebrew as dependencies.
@@ -534,7 +533,22 @@ extra non-Homebrew plugins (that you build yourself) there, and instead set GST_
their location (Homebrew does not supply a complete GStreamer, but seems to have everything needed for UxPlay).
Finally, build and install uxplay: open a terminal and change into the UxPlay source directory
**Using GStreamer installed from MacPorts**: this is **not** recommended, as currently the MacPorts GStreamer
is old (v1.16.2), unmaintained, and built to use X11:
* Instead [build gstreamer yourself](https://github.com/FDH2/UxPlay/wiki/Building-GStreamer-from-Source-on-macOS-with-MacPorts)
if you use MacPorts and do not want to use the "Official" Gstreamer binaries.
_(If you really wish to use the MacPorts GStreamer-1.16.2,
install pkgconf ("sudo port install pkgconf"), then
"sudo port install gstreamer1-gst-plugins-base gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav".
For X11 support on macOS, compile UxPlay using a special cmake option `-DUSE_X11=ON`, and run
it from an XQuartz terminal with -vs ximagesink; older non-retina macs require a lower resolution
when using X11: `uxplay -s 800x600`.)_
After installing GStreamer, build and install uxplay: open a terminal and change into the UxPlay source directory
("UxPlay-master" for zipfile downloads, "UxPlay" for "git clone" downloads) and build/install with
"cmake . ; make ; sudo make install " (same as for Linux).
@@ -558,16 +572,6 @@ Finally, build and install uxplay: open a terminal and change into the UxPlay so
the option "-vs osxvideosink force-aspect-ratio=true" can be used to make the window have the
correct aspect ratio when it first opens.
***Using GStreamer installed from MacPorts (not recommended):***
To install: "sudo port install pkgconf"; "sudo port install gstreamer1-gst-plugins-base gstreamer1-gst-plugins-good gstreamer1-gst-plugins-bad gstreamer1-gst-libav".
**The MacPorts GStreamer is old (v1.16.2) and built to use X11**: use the special CMake option `-DUSE_X11=ON`
when building UxPlay. Then uxplay must be run from an XQuartz terminal, and needs
option "-vs ximagesink". On a unibody (non-retina) MacBook Pro, the default resolution wxh = 1920x1080
was too large, but using option "-s 800x600" worked. The MacPorts GStreamer pipeline
seems fragile against attempts to change the X11 window size, or to rotations that switch a connected client between portrait and landscape mode while uxplay is running. Using the MacPorts X11 GStreamer seems only possible if the image size is left unchanged from the initial "-s wxh" setting (also use the iPad/iPhone setting that locks the screen orientation against switching between portrait and landscape mode as the device is rotated).
## Building UxPlay on Microsoft Windows, using MSYS2 with the MinGW-64 compiler.
* tested on Windows 10 and 11, 64-bit.