option bt709 needed with R Pi <= model 4B and GStreamer>=1.22

This commit is contained in:
F. Duncanh
2024-12-14 10:51:27 -05:00
parent 78ab7efd90
commit aae2a2d308
6 changed files with 52 additions and 16 deletions

View File

@@ -88,12 +88,14 @@ you may wish to add “as pipewiresink” or “vs waylandsink” as defaults to
the file. <em>(Output from terminal commands “ps waux | grep pulse” or
“pactl info” will contain “pipewire” if your Linux/BSD system uses
it).</em></p></li>
<li><p>On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer
must be <a
<li><p>On Raspberry Pi: models using hardware h264 video decoding by the
Broadcom GPU (models 4B and earlier) may require the uxplay option
-bt709. If you use Ubuntu 22.10 or earlier, GStreamer must be <a
href="https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches">patched</a>
to use hardware video decoding by the Broadcom GPU (also recommended but
optional for Raspberry Pi OS (Bullseye): use option
<code>uxplay -bt709</code>” if you do not use the patch).</p></li>
optional for Raspberry Pi OS (Bullseye): the patched GStreamer does not
need option ” -bt709`“. The need for -bt709 when hardware video decoding
is used seems to have reappeared starting with GStreamer-1.22.</p></li>
</ul>
<p>To (easily) compile the latest UxPlay from source, see the section <a
href="#getting-uxplay">Getting UxPlay</a>.</p>
@@ -583,6 +585,12 @@ GStreamer-1.24).</p></li>
<li><p>If the server is “headless” (no attached monitor, renders audio
only) use <code>-vs 0</code>.</p></li>
</ul>
<p>Note that videosink options can set using quoted arguments to -vs:
<em>e.g.</em>, <code>-vs "xvimagesink display=:0"</code>: ximagesink and
xvimagesink allow an X11 display name to be specified, and waylandsink
has a similar option. Videosink options (“properties”) can be found in
their GStreamer description pages,such as
https://gstreamer.freedesktop.org/documentation/xvimagesink .</p>
<p>GStreamer also searches for the best “audiosink”; override its choice
with <code>-as &lt;audiosink&gt;</code>. Choices on Linux include
pulsesink, alsasink, pipewiresink, oss4sink; see what is available with
@@ -626,6 +634,9 @@ Wiki</a>. Legacy Raspberry Pi OS (Bullseye) has a partially-patched
GStreamer-1.18.4 which needs the uxplay option -bt709 (and dont use
-v4l2); it is still better to apply the full patch from the UxPlay Wiki
in this case.</p></li>
<li><p><strong>It appears that when hardware h264 video decoding is
used, the option -bt709 became needed again in GStreamer-1.22 and
later.</strong></p></li>
<li><p>For “double-legacy” Raspberry Pi OS (Buster), there is no patch
for GStreamer-1.14. Instead, first build a complete newer
GStreamer-1.18.6 from source using <a

View File

@@ -81,12 +81,15 @@ After installation:
from terminal commands "ps waux \| grep pulse" or "pactl info" will
contain "pipewire" if your Linux/BSD system uses it).*
- On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer must
be
[patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)
- On Raspberry Pi: models using hardware h264 video decoding by the
Broadcom GPU (models 4B and earlier) may require the uxplay option -bt709.
If you use Ubuntu 22.10 or earlier, GStreamer must
be [patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)
to use hardware video decoding by the Broadcom GPU (also recommended
but optional for Raspberry Pi OS (Bullseye): use option
"`uxplay -bt709`" if you do not use the patch).
but optional for Raspberry Pi OS (Bullseye): the patched GStreamer
does not need option " -bt709`". The need for -bt709 when hardware video
decoding is used seems to have reappeared
starting with GStreamer-1.22.
To (easily) compile the latest UxPlay from source, see the section
[Getting UxPlay](#getting-uxplay).
@@ -574,6 +577,12 @@ what is available. Some possibilites on Linux/\*BSD are:
- If the server is "headless" (no attached monitor, renders audio
only) use `-vs 0`.
Note that videosink options can set using quoted arguments to -vs:
_e.g._, `-vs "xvimagesink display=:0"`: ximagesink and xvimagesink allow
an X11 display name to be specified, and waylandsink has a similar option.
Videosink options ("properties") can be found in their GStreamer description pages,such as
https://gstreamer.freedesktop.org/documentation/xvimagesink .
GStreamer also searches for the best "audiosink"; override its choice
with `-as <audiosink>`. Choices on Linux include pulsesink, alsasink,
pipewiresink, oss4sink; see what is available with
@@ -622,6 +631,9 @@ See [Usage](#usage) for more run-time options.
-v4l2); it is still better to apply the full patch from the UxPlay
Wiki in this case.
- **It appears that when hardware h264 video decoding is used, the option
-bt709 became needed again in GStreamer-1.22 and later.**
- For "double-legacy" Raspberry Pi OS (Buster), there is no patch for
GStreamer-1.14. Instead, first build a complete newer
GStreamer-1.18.6 from source using [these

View File

@@ -81,12 +81,15 @@ After installation:
from terminal commands "ps waux \| grep pulse" or "pactl info" will
contain "pipewire" if your Linux/BSD system uses it).*
- On Raspberry Pi: If you use Ubuntu 22.10 or earlier, GStreamer must
be
- On Raspberry Pi: models using hardware h264 video decoding by the
Broadcom GPU (models 4B and earlier) may require the uxplay option
-bt709. If you use Ubuntu 22.10 or earlier, GStreamer must be
[patched](https://github.com/FDH2/UxPlay/wiki/Gstreamer-Video4Linux2-plugin-patches)
to use hardware video decoding by the Broadcom GPU (also recommended
but optional for Raspberry Pi OS (Bullseye): use option
"`uxplay -bt709`" if you do not use the patch).
but optional for Raspberry Pi OS (Bullseye): the patched GStreamer
does not need option " -bt709\`". The need for -bt709 when hardware
video decoding is used seems to have reappeared starting with
GStreamer-1.22.
To (easily) compile the latest UxPlay from source, see the section
[Getting UxPlay](#getting-uxplay).
@@ -574,6 +577,13 @@ what is available. Some possibilites on Linux/\*BSD are:
- If the server is "headless" (no attached monitor, renders audio
only) use `-vs 0`.
Note that videosink options can set using quoted arguments to -vs:
*e.g.*, `-vs "xvimagesink display=:0"`: ximagesink and xvimagesink allow
an X11 display name to be specified, and waylandsink has a similar
option. Videosink options ("properties") can be found in their GStreamer
description pages,such as
https://gstreamer.freedesktop.org/documentation/xvimagesink .
GStreamer also searches for the best "audiosink"; override its choice
with `-as <audiosink>`. Choices on Linux include pulsesink, alsasink,
pipewiresink, oss4sink; see what is available with
@@ -622,6 +632,9 @@ See [Usage](#usage) for more run-time options.
-v4l2); it is still better to apply the full patch from the UxPlay
Wiki in this case.
- **It appears that when hardware h264 video decoding is used, the
option -bt709 became needed again in GStreamer-1.22 and later.**
- For "double-legacy" Raspberry Pi OS (Buster), there is no patch for
GStreamer-1.14. Instead, first build a complete newer
GStreamer-1.18.6 from source using [these

View File

@@ -571,7 +571,7 @@ gboolean gstreamer_pipeline_bus_callback(GstBus *bus, GstMessage *message, void
"*** GStreamer may be trying to use non-functional hardware h264 video decoding.\n"
"*** Try using option -avdec to force software decoding or use -vs <videosink>\n"
"*** to select a videosink of your choice (see \"man uxplay\").\n\n"
"*** Raspberry Pi OS with (unpatched) GStreamer-1.18.4 needs \"-bt709\" uxplay option");
"*** Raspberry Pi models 4B and earlier using Video4Linux2 may need \"-bt709\" uxplay option");
}
g_error_free (err);
g_free (debug);

View File

@@ -85,7 +85,7 @@ UxPlay 1.71: An open\-source AirPlay mirroring (+ audio streaming) server:
.TP
\fB\-v4l2\fR Use Video4Linux2 for GPU hardware h264 video decoding.
.TP
\fB\-bt709\fR Sometimes needed for Raspberry Pi with GStreamer < 1.22
\fB\-bt709\fR Sometimes needed for Raspberry Pi models using Video4Linux2.
.TP
\fB\-as\fI sink\fR Choose the GStreamer audiosink; default "autoaudiosink"
.IP

View File

@@ -640,7 +640,7 @@ static void print_info (char *name) {
printf(" gtksink,waylandsink,osxvideosink,kmssink,d3d11videosink etc.\n");
printf("-vs 0 Streamed audio only, with no video display window\n");
printf("-v4l2 Use Video4Linux2 for GPU hardware h264 decoding\n");
printf("-bt709 Sometimes needed for Raspberry Pi with GStreamer < 1.22 \n");
printf("-bt709 Sometimes needed for Raspberry Pi models using Video4Linux2 \n");
printf("-as ... Choose the GStreamer audiosink; default \"autoaudiosink\"\n");
printf(" some choices:pulsesink,alsasink,pipewiresink,jackaudiosink,\n");
printf(" osssink,oss4sink,osxaudiosink,wasapisink,directsoundsink.\n");