update to UxPlay-1.70; rename video_renderers_gstreamer.c

This commit is contained in:
F. Duncanh
2024-09-17 18:15:28 -04:00
parent 57bd7555fa
commit 0473ccdba0
10 changed files with 111 additions and 60 deletions

View File

@@ -1,6 +1,6 @@
<h1
id="uxplay-1.69-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix-now-also-runs-on-windows.">UxPlay
1.69: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix
id="uxplay-1.70-airplay-mirror-and-airplay-audio-server-for-linux-macos-and-unix-now-also-runs-on-windows.">UxPlay
1.70: AirPlay-Mirror and AirPlay-Audio server for Linux, macOS, and Unix
(now also runs on Windows).</h1>
<h3
id="now-developed-at-the-github-site-httpsgithub.comfdh2uxplay-where-all-user-issues-should-be-posted-and-latest-versions-can-be-found."><strong>Now
@@ -9,14 +9,13 @@ href="https://github.com/FDH2/UxPlay">https://github.com/FDH2/UxPlay</a>
(where ALL user issues should be posted, and latest versions can be
found).</strong></h3>
<ul>
<li><p><em><strong>NEW in v1.69</strong>: minor changes for users:
-nofreeze option to NOT leave frozen video in place when a network
failure occurs; internal changes/improvements needed for planned future
HLS video streaming support.</em></p></li>
<li><p><em><strong>NEW in v1.70</strong>: Support for 4k (h265) video
with the new “-h265” option.</em></p></li>
<li><p><strong>An experimental (“beta”) version of UxPlay with support
for HLS streaming of YouTube Videos from the YouTube app on an iOS
client is now available at</strong>
https://github.com/FDH2/UxPlay/tree/video . <em>See the <a
client is now also available at</strong>
https://github.com/FDH2/UxPlay/tree/video2, and this feature will be
added in a future release of UxPlay. <em>See the <a
href="https://github.com/FDH2/UxPlay/wiki/experimental-version-of-UxPlay-with-support-for-HLS-video-streaming-(you-tube-movies)">Wiki
page</a> for details.</em></p></li>
</ul>
@@ -183,8 +182,9 @@ without the accompanying video (there are plans to support HLS video in
future releases of UxPlay)</strong></p></li>
</ul>
<h3
id="possibility-for-using-hardware-accelerated-h264-video-decoding-if-available.">Possibility
for using hardware-accelerated h264 video-decoding, if available.</h3>
id="possibility-for-using-hardware-accelerated-h264h265-video-decoding-if-available.">Possibility
for using hardware-accelerated h264/h265 video-decoding, if
available.</h3>
<p>UxPlay uses <a href="https://gstreamer.freedesktop.org">GStreamer</a>
“plugins” for rendering audio and video. This means that video and audio
are supported “out of the box”, using a choice of plugins. AirPlay
@@ -631,6 +631,13 @@ GPU with the GStreamer OMX plugin (use option
<code>-vd omxh264dec</code>”), but this is broken by Pi 4 Model B
firmware. OMX support was removed from Raspberry Pi OS (Bullseye), but
is present in Buster.</p></li>
<li><p><strong>H265 (4K)</strong> video is supported with hardware
decoding by the Broadcom GPU on Raspberry Pi 5 models, as well as on
Raspberry Pi 4 model B. <strong>While GStreamer seem to make use of this
hardware decoding, satisfactory rendering of 4K video by UxPlay on these
Raspberry Pi models has not yet been acheived.</strong> The option -h265
is required, and option “-vsync no” may be preferred. “<em>4K video on
Raspberry Pi is still a work in progress.</em></p></li>
</ul>
<p>Even with GPU video decoding, some frames may be dropped by the
lower-power models to keep audio and video synchronized using
@@ -911,6 +918,14 @@ the mirror display (X11) window.</p>
<p><strong>-nh</strong> Do not append “<span class="citation"
data-cites="_hostname_">@_hostname_</span>” at the end of the AirPlay
server name.</p>
<p><strong>-h265</strong> Activate “ScreenMultiCodec” support (AirPlay
“Features” bit 42) for accepting h265 (4K) video in addition to h264
video (1080p) in screen-mirror mode. When this option is used, two
“video pipelines” (one for h264, one for h265) are created. If any
GStreamer plugins in the pipeline are specific for h264 or h265, the
correct version will be used in each pipeline. A wired Client-Server
ethernet connection is preferred over Wifi for 4K video, and might be
required by the client.</p>
<p><strong>-pin [nnnn]</strong>: (since v1.67) use Apple-style
(one-time) “pin” authentication when a new client connects for the first
time: a four-digit pin code is displayed on the terminal, and the client
@@ -984,10 +999,11 @@ each time the length of the volume slider (or the number of steps above
mute, where 16 steps = full volume) is reduced by 50%, the perceived
volume is halved (a 10dB attenuation). (This is modified at low volumes,
to use the “untapered” volume if it is louder.)</p>
<p><strong>-s wxh</strong> (e.g. -s 1920x1080 , which is the default )
sets the display resolution (width and height, in pixels). (This may be
<p><strong>-s wxh</strong> e.g. -s 1920x1080 (= “1080p”), the default
width and height resolutions in pixels for h264 video. (The default
becomes 3840x2160 (= “4K”) when the -h265 option is used.) This is just
a request made to the AirPlay client, and perhaps will not be the final
resolution you get.) w and h are whole numbers with four digits or less.
resolution you get. w and h are whole numbers with four digits or less.
Note that the <strong>height</strong> pixel size is the controlling one
used by the client for determining the streaming format; the width is
dynamically adjusted to the shape of the image (portrait or landscape
@@ -1261,13 +1277,13 @@ that your network <strong>does not have a running Bonjour/zeroconf
DNS-SD server.</strong> Before v1.60, UxPlay used to stall silently if
DNS-SD service registration failed, but now stops with an error message
returned by the DNSServiceRegister function: kDNSServiceErr_Unknown if
no DNS-SD server was found. (A NixOS user found that in NixOS, this
no DNS-SD server was found: <em>(A NixOS user found that in NixOS, this
error can also occur if avahi-daemon service IS running with publishing
enabled, but reports “the error disappeared on NixOS by setting
services.avahi.openFirewall to true”.) Other mDNS error codes are in the
range FFFE FF00 (-65792) to FFFE FFFF (-65537), and are listed in the
dnssd.h file. An older version of this (the one used by avahi) is found
<a
services.avahi.openFirewall to true”.)</em> Other mDNS error codes are
in the range FFFE FF00 (-65792) to FFFE FFFF (-65537), and are listed in
the dnssd.h file. An older version of this (the one used by avahi) is
found <a
href="https://github.com/lathiat/avahi/blob/master/avahi-compat-libdns_sd/dns_sd.h">here</a>.
A few additional error codes are defined in a later version from <a
href="https://opensource.apple.com/source/mDNSResponder/mDNSResponder-544/mDNSShared/dns_sd.h.auto.html">Apple</a>.</p>
@@ -1546,6 +1562,8 @@ an AppleTV6,2 with sourceVersion 380.20.1 (an AppleTV 4K 1st gen,
introduced 2017, running tvOS 12.2.1), so it does not seem to matter
what version UxPlay claims to be.</p>
<h1 id="changelog">Changelog</h1>
<p>1.70 2024-09-17 Add support for 4K (h265) video (resolution 3840 x
2160).</p>
<p>1.69 2024-08-09 Internal improvements (e.g. in -nohold option,
identifying GStreamer videosink selected by autovideosink, finding X11
display) in anticipation of future HLS video support. New -nofreeze