README edits

This commit is contained in:
fduncanh
2022-01-10 23:12:15 -05:00
parent 536cf096bb
commit ccf03ec773
3 changed files with 46 additions and 27 deletions

View File

@@ -53,7 +53,11 @@
<p>First get the latest macOS release of GStreamer-1.0 from <a href="https://gstreamer.freedesktop.org/download/">https://gstreamer.freedesktop.org/download/</a>. Install both the macOS runtime and development installer packages. Assuming that the latest release is 1.18.5 they are <code>gstreamer-1.0-1.18.5-x86_64.pkg</code> and <code>gstreamer-1.0-devel-1.18.5-x86_64.pkg</code>. Click on them to install (they install to /Library/FrameWorks/GStreamer.framework). It is recommended you use GStreamer.framework rather than install Gstreamer with Homebrew or MacPorts (see later).</p>
<p>Next install OpenSSL and libplist: these can be built from source (see above); only the static forms of the two libraries will used for the macOS build, so you can uninstall them (“sudo make uninstall”) after you have built UxPlay. It may be easier to get them using MacPorts “sudo port install openssl libplist-devel” or Homebrew “brew install openssl libplist” (but not Fink). if you dont have MacPorts or Homebrew installed, you can just install one of them before building uxplay, and uninstall afterwards if it is not wanted.</p>
<p>Finally, build and install uxplay (without ZOOMFIX): 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).</p>
<p>On the macOS build, autovideosink uses OpenGL, not X11, to create the mirror display window (equivalent to “-vs glimagesink”; “-vs osxvideosink” can also be used). The window title does not show the Airplay server name, but it is visible to screen-sharing apps (e.g., Zoom). On macOS, The option -t <em>timeout</em> cannot be used because if the GStreamer pipeline is destroyed while the mirror window is still open, a segfault occurs (this is an issue with the GStreamer plugins, not UxPlay). Also, the resolution settings “-s wxh” do not affect the (small) initial OpenGL mirror window size, but the window can be expanded using the mouse or trackpad. In contrast, a window created with “-vs osxvideosink” is initially big, but has the wrong aspect ratio (stretched image); in this case the aspect ratio changes when the window width is changed by dragging its side.</p>
<ul>
<li><p>On the macOS build, autovideosink uses OpenGL, not X11, to create the mirror display window (equivalent to “-vs glimagesink”; “-vs osxvideosink” can also be used). The window title does not show the Airplay server name, but it is visible to screen-sharing apps (e.g., Zoom).</p></li>
<li><p>On macOS, The option -t <em>timeout</em> cannot be used because if the GStreamer pipeline is destroyed while the mirror window is still open, a segfault occurs (this is an issue with the GStreamer plugins, not UxPlay). A similar issue may occur if the (OpenGL) video window does not close after a client sends the “Stop Mirroring” signal, leading to a segfault when a new connection is made. If you have this problem, use the no-close option “<code>uxplay -nc</code>”, which leaves the window open.</p></li>
<li><p>Also, the resolution settings “-s wxh” do not affect the (small) initial OpenGL mirror window size, but the window can be expanded using the mouse or trackpad. In contrast, a window created with “-vs osxvideosink” is initially big, but has the wrong aspect ratio (stretched image); in this case the aspect ratio changes when the window width is changed by dragging its side.</p></li>
</ul>
<p><strong><em>Other ways (Homebrew, MacPorts) to install GStreamer on macOS (not recommended):</em></strong></p>
<p>First make sure that pkgconfig is installed (Homebrew: “brew install pkgconfig” ; MacPorts: “sudo port install pkgconfig” ).</p>
<ol type="a">
@@ -96,7 +100,7 @@
<p>You can try to fix audio problems by using the “-as <em>audiosink</em>” option to choose the GStreamer audiosink , rather than have autoaudiosink pick one for you. The command “gst-inspect-1.0 | grep Sink | grep Audio” " will show you which audiosinks are available on your system. (Replace “Audio” by “Video” to see videosinks). Some possible audiosinks are pulsesink, alsasink, osssink, oss4sink, and osxaudiosink (macOS).</p>
<p>If you ran cmake with “-DZOOMFIX=ON”, check if the problem is still there without ZOOMFIX. ZOOMFIX is only applied to the default videosink choice (“autovideosink”) and the two X11 videosinks “ximagesink” and “xvimagesink”. ZOOMFIX is only designed for these last two; if autovideosink chooses a different videosink, ZOOMFIX is now ignored. If you are using the X11 windowing system (standard on Linux), and have trouble with screen-sharing on Zoom, use ZOOMFIX and “-vs xvimagesink” (or “-vs ximagesink” if the previous choice doesnt work).</p>
<p>As other videosink choices are not affected by ZOOMFIX, they may or may not be visible to screen-sharing apps. Cairo-based windows created on Linux with “-vs gtksink” are visible to screen-sharing aps without ZOOMFIX; windows on macOS created by “-vs glimagesink” (default choice) and “-vs osximagesink” are also visible.</p>
<p>The “OpenGL renderer” window created on Linux by “-vs glimagesink” sometimes does not close properly when its “close” button is clicked. (this is a GStreamer issue). You may need to terminate uxplay with Ctrl-C to close a “zombie” OpenGl window.</p>
<p>The “OpenGL renderer” window created on Linux by “-vs glimagesink” sometimes does not close properly when its “close” button is clicked. (this is a GStreamer issue). You may need to terminate uxplay with Ctrl-C to close a “zombie” OpenGl window. If similar problems happen when the client sends the “Stop Mirroring” signal, try the no-close option “-nc” that leaves the video window open.</p>
<h3 id="gstreamer-issues-missing-plugins-etc.">4. GStreamer issues (missing plugins, etc.):</h3>
<p>To troubleshoot GStreamer execute “export GST_DEBUG=2” to set the GStreamer debug-level environment-variable in the terminal where you will run uxplay, so that you see warning and error messages; (replace “2” by “4” to see much (much) more of what is happening inside GStreamer). Run “gst-inspect-1.0” to see which GStreamer plugins are installed on your system.</p>
<p>Some extra GStreamer packages for special plugins may need to be installed (or reinstalled: a user using a Wayland display system as an alternative to X11 reported that after reinstalling Lubuntu 18.4, UxPlay would not work until gstreamer1.0-x was installed, presumably for Waylands X11-compatibility mode). Different distributions may break up GStreamer 1.x into packages in different ways; the packages listed above in the build instructions should bring in other required GStreamer packages as dependencies, but will not install all possible plugins.</p>

View File

@@ -201,16 +201,20 @@ Finally, build and install uxplay (without ZOOMFIX): open a terminal and change
("UxPlay-master" for zipfile downloads, "UxPlay" for "git clone" downloads) and build/install with
"cmake . ; make ; sudo make install " (same as for Linux).
On the macOS build, autovideosink uses OpenGL, not X11, to create the mirror display window (equivalent to
"-vs glimagesink"; "-vs osxvideosink" can also be used).
The window title does not show the Airplay server name, but it is visible to
screen-sharing apps (e.g., Zoom). On macOS, The option -t _timeout_
cannot be used because if the GStreamer pipeline is destroyed while the mirror window is still open,
a segfault occurs (this is an issue with the GStreamer plugins, not UxPlay).
Also, the resolution settings "-s wxh" do not affect
the (small) initial OpenGL mirror window size, but the window can be expanded using the mouse or trackpad.
In contrast, a window created with "-vs osxvideosink" is initially big, but has the wrong aspect ratio (stretched image);
in this case the aspect ratio changes when the window width is changed by dragging its side.
* On the macOS build, autovideosink uses OpenGL, not X11, to create the mirror display window (equivalent to
"-vs glimagesink"; "-vs osxvideosink" can also be used).
The window title does not show the Airplay server name, but it is visible to
screen-sharing apps (e.g., Zoom).
* On macOS, The option -t _timeout_ cannot be used because if the GStreamer pipeline is destroyed while the mirror
window is still open, a segfault occurs (this is an issue with the GStreamer plugins, not UxPlay). A similar issue may
occur if the (OpenGL) video window does not close after a client sends the "Stop Mirroring" signal, leading to a
segfault when a new connection is made. If you have this problem, use the no-close option "``uxplay -nc``", which leaves the window open.
* Also, the resolution settings "-s wxh" do not affect
the (small) initial OpenGL mirror window size, but the window can be expanded using the mouse or trackpad.
In contrast, a window created with "-vs osxvideosink" is initially big, but has the wrong aspect ratio (stretched image);
in this case the aspect ratio changes when the window width is changed by dragging its side.
***Other ways (Homebrew, MacPorts) to install GStreamer on macOS (not recommended):***
@@ -406,7 +410,8 @@ Cairo-based windows created on Linux with "-vs gtksink" are visible to screen-sh
"-vs glimagesink" (default choice) and "-vs osximagesink" are also visible.
The "OpenGL renderer" window created on Linux by "-vs glimagesink" sometimes does not close properly when its "close" button is clicked.
(this is a GStreamer issue). You may need to terminate uxplay with Ctrl-C to close a "zombie" OpenGl window.
(this is a GStreamer issue). You may need to terminate uxplay with Ctrl-C to close a "zombie" OpenGl window. If similar problems happen when
the client sends the "Stop Mirroring" signal, try the no-close option "-nc" that leaves the video window open.
### 4. GStreamer issues (missing plugins, etc.):

View File

@@ -262,19 +262,27 @@ 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).
On the macOS build, autovideosink uses OpenGL, not X11, to create the
mirror display window (equivalent to "-vs glimagesink"; "-vs
osxvideosink" can also be used). The window title does not show the
Airplay server name, but it is visible to screen-sharing apps (e.g.,
Zoom). On macOS, The option -t *timeout* cannot be used because if the
GStreamer pipeline is destroyed while the mirror window is still open, a
segfault occurs (this is an issue with the GStreamer plugins, not
UxPlay). Also, the resolution settings "-s wxh" do not affect the
(small) initial OpenGL mirror window size, but the window can be
expanded using the mouse or trackpad. In contrast, a window created with
"-vs osxvideosink" is initially big, but has the wrong aspect ratio
(stretched image); in this case the aspect ratio changes when the window
width is changed by dragging its side.
- On the macOS build, autovideosink uses OpenGL, not X11, to create
the mirror display window (equivalent to "-vs glimagesink"; "-vs
osxvideosink" can also be used). The window title does not show the
Airplay server name, but it is visible to screen-sharing apps (e.g.,
Zoom).
- On macOS, The option -t *timeout* cannot be used because if the
GStreamer pipeline is destroyed while the mirror window is still
open, a segfault occurs (this is an issue with the GStreamer
plugins, not UxPlay). A similar issue may occur if the (OpenGL)
video window does not close after a client sends the "Stop
Mirroring" signal, leading to a segfault when a new connection is
made. If you have this problem, use the no-close option
"`uxplay -nc`", which leaves the window open.
- Also, the resolution settings "-s wxh" do not affect the (small)
initial OpenGL mirror window size, but the window can be expanded
using the mouse or trackpad. In contrast, a window created with "-vs
osxvideosink" is initially big, but has the wrong aspect ratio
(stretched image); in this case the aspect ratio changes when the
window width is changed by dragging its side.
***Other ways (Homebrew, MacPorts) to install GStreamer on macOS (not
recommended):***
@@ -516,7 +524,9 @@ and "-vs osximagesink" are also visible.
The "OpenGL renderer" window created on Linux by "-vs glimagesink"
sometimes does not close properly when its "close" button is clicked.
(this is a GStreamer issue). You may need to terminate uxplay with
Ctrl-C to close a "zombie" OpenGl window.
Ctrl-C to close a "zombie" OpenGl window. If similar problems happen
when the client sends the "Stop Mirroring" signal, try the no-close
option "-nc" that leaves the video window open.
### 4. GStreamer issues (missing plugins, etc.):