mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
remove the d3d12->d3d11 workaround (d3d12 is now fixed)
This commit is contained in:
@@ -999,10 +999,11 @@ used.</p>
|
|||||||
<code><videosink></code> are <code>d3d12videosink</code>,
|
<code><videosink></code> are <code>d3d12videosink</code>,
|
||||||
<code>d3d11videosink</code>, <code>d3dvideosink</code>,
|
<code>d3d11videosink</code>, <code>d3dvideosink</code>,
|
||||||
<code>glimagesink</code>, <code>gtksink</code>,
|
<code>glimagesink</code>, <code>gtksink</code>,
|
||||||
<code>autovideosink</code>. If you do not specify the videosink, the
|
<code>autovideosink</code>. <em>There have been reports of segfaults of
|
||||||
d3d11videosink will be used (users have reported segfaults of the newer
|
the newer d3d12 videodecoder on certain older Nvidia cards when the
|
||||||
d3d12 videodecoder on certain older Nvidia cards when the image
|
image resolution changes, e.g., when the iOS client is rotated between
|
||||||
resolution changes: d3d11 will used by default until this is fixed).</p>
|
portrait and landcape modes: this was a GStreamer issue that is
|
||||||
|
apparently now fixed (a workaround is to use d3d11).</em></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>With Direct3D 11.0 or greater, various options can be set using
|
<li>With Direct3D 11.0 or greater, various options can be set using
|
||||||
e.g. <code>-vs "d3d11videosink <options>"</code> (see the
|
e.g. <code>-vs "d3d11videosink <options>"</code> (see the
|
||||||
|
|||||||
@@ -987,10 +987,11 @@ like `\{0.0.0.00000000\}.\{98e35b2b-8eba-412e-b840-fd2c2492cf44\}`. If
|
|||||||
|
|
||||||
If you wish to specify the videosink using the `-vs <videosink>` option,
|
If you wish to specify the videosink using the `-vs <videosink>` option,
|
||||||
some choices for `<videosink>` are `d3d12videosink`, ``d3d11videosink``, ```d3dvideosink```,
|
some choices for `<videosink>` are `d3d12videosink`, ``d3d11videosink``, ```d3dvideosink```,
|
||||||
`glimagesink`, ``gtksink``, ```autovideosink```. If you do not specify the videosink,
|
`glimagesink`, ``gtksink``, ```autovideosink```. _There have been reports of
|
||||||
the d3d11videosink will be used (users have reported segfaults of the newer d3d12 videodecoder
|
segfaults of the newer d3d12 videodecoder
|
||||||
on certain older Nvidia cards when the image resolution changes:
|
on certain older Nvidia cards when the image resolution changes, e.g., when the iOS client
|
||||||
d3d11 will used by default until this is fixed).
|
is rotated between portrait and landcape modes: this was a GStreamer issue
|
||||||
|
that is apparently now fixed (a workaround is to use d3d11)._
|
||||||
|
|
||||||
- With Direct3D 11.0 or greater, various options can be set
|
- With Direct3D 11.0 or greater, various options can be set
|
||||||
using e.g. `-vs "d3d11videosink <options>"` (see the gstreamer videosink
|
using e.g. `-vs "d3d11videosink <options>"` (see the gstreamer videosink
|
||||||
|
|||||||
11
README.txt
11
README.txt
@@ -1011,11 +1011,12 @@ like `\{0.0.0.00000000\}.\{98e35b2b-8eba-412e-b840-fd2c2492cf44\}`. If
|
|||||||
|
|
||||||
If you wish to specify the videosink using the `-vs <videosink>` option,
|
If you wish to specify the videosink using the `-vs <videosink>` option,
|
||||||
some choices for `<videosink>` are `d3d12videosink`, `d3d11videosink`,
|
some choices for `<videosink>` are `d3d12videosink`, `d3d11videosink`,
|
||||||
`d3dvideosink`, `glimagesink`, `gtksink`, `autovideosink`. If you do not
|
`d3dvideosink`, `glimagesink`, `gtksink`, `autovideosink`. *There have
|
||||||
specify the videosink, the d3d11videosink will be used (users have
|
been reports of segfaults of the newer d3d12 videodecoder on certain
|
||||||
reported segfaults of the newer d3d12 videodecoder on certain older
|
older Nvidia cards when the image resolution changes, e.g., when the iOS
|
||||||
Nvidia cards when the image resolution changes: d3d11 will used by
|
client is rotated between portrait and landcape modes: this was a
|
||||||
default until this is fixed).
|
GStreamer issue that is apparently now fixed (a workaround is to use
|
||||||
|
d3d11).*
|
||||||
|
|
||||||
- With Direct3D 11.0 or greater, various options can be set using
|
- With Direct3D 11.0 or greater, various options can be set using
|
||||||
e.g. `-vs "d3d11videosink <options>"` (see the gstreamer videosink
|
e.g. `-vs "d3d11videosink <options>"` (see the gstreamer videosink
|
||||||
|
|||||||
4
uxplay.1
4
uxplay.1
@@ -91,7 +91,9 @@ UxPlay 1.72: An open\-source AirPlay mirroring (+ audio streaming) server:
|
|||||||
.IP
|
.IP
|
||||||
choices: ximagesink,xvimagesink,vaapisink,glimagesink,
|
choices: ximagesink,xvimagesink,vaapisink,glimagesink,
|
||||||
.IP
|
.IP
|
||||||
gtksink,waylandsink,osxvideosink,kmssink,d3d11videosink,...
|
gtksink,waylandsink,kmssink,fbdevsink,osxvideosink,
|
||||||
|
.IP
|
||||||
|
d3d11videosink,d3d12videosink ...
|
||||||
.PP
|
.PP
|
||||||
.TP
|
.TP
|
||||||
\fB\-vs\fR 0 Streamed audio only, with no video display window.
|
\fB\-vs\fR 0 Streamed audio only, with no video display window.
|
||||||
|
|||||||
21
uxplay.cpp
21
uxplay.cpp
@@ -806,7 +806,7 @@ static void print_info (char *name) {
|
|||||||
printf("-s wxh[@r]Request to client for video display resolution [refresh_rate]\n");
|
printf("-s wxh[@r]Request to client for video display resolution [refresh_rate]\n");
|
||||||
printf(" default 1920x1080[@60] (or 3840x2160[@60] with -h265 option)\n");
|
printf(" default 1920x1080[@60] (or 3840x2160[@60] with -h265 option)\n");
|
||||||
printf("-o Set display \"overscanned\" mode on (not usually needed)\n");
|
printf("-o Set display \"overscanned\" mode on (not usually needed)\n");
|
||||||
printf("-fs Full-screen (only with X11, Wayland, VAAPI, D3D11, kms)\n");
|
printf("-fs Full-screen (only with X11, Wayland, VAAPI, D3D11/12, kms)\n");
|
||||||
printf("-p Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100\n");
|
printf("-p Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100\n");
|
||||||
printf("-p n Use TCP and UDP ports n,n+1,n+2. range %d-%d\n", LOWEST_ALLOWED_PORT, HIGHEST_PORT);
|
printf("-p n Use TCP and UDP ports n,n+1,n+2. range %d-%d\n", LOWEST_ALLOWED_PORT, HIGHEST_PORT);
|
||||||
printf(" use \"-p n1,n2,n3\" to set each port, \"n1,n2\" for n3 = n2+1\n");
|
printf(" use \"-p n1,n2,n3\" to set each port, \"n1,n2\" for n3 = n2+1\n");
|
||||||
@@ -821,7 +821,8 @@ static void print_info (char *name) {
|
|||||||
printf(" another choice when using v4l2h264dec: v4l2convert\n");
|
printf(" another choice when using v4l2h264dec: v4l2convert\n");
|
||||||
printf("-vs ... Choose the GStreamer videosink; default \"autovideosink\"\n");
|
printf("-vs ... Choose the GStreamer videosink; default \"autovideosink\"\n");
|
||||||
printf(" some choices: ximagesink,xvimagesink,vaapisink,glimagesink,\n");
|
printf(" some choices: ximagesink,xvimagesink,vaapisink,glimagesink,\n");
|
||||||
printf(" gtksink,waylandsink,osxvideosink,kmssink,d3d11videosink etc.\n");
|
printf(" gtksink,waylandsink,kmssink,fbdevsink,osxvideosink,\n");
|
||||||
|
printf(" d3d11videosink,d3v12videosink, etc.\n");
|
||||||
printf("-vs 0 Streamed audio only, with no video display window\n");
|
printf("-vs 0 Streamed audio only, with no video display window\n");
|
||||||
printf("-v4l2 Use Video4Linux2 for GPU hardware h264 decoding\n");
|
printf("-v4l2 Use Video4Linux2 for GPU hardware h264 decoding\n");
|
||||||
printf("-bt709 Sometimes needed for Raspberry Pi models using Video4Linux2 \n");
|
printf("-bt709 Sometimes needed for Raspberry Pi models using Video4Linux2 \n");
|
||||||
@@ -2608,20 +2609,6 @@ int main (int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
/* because of issues in videosink dvd312videosink (segfault when resolution changes
|
|
||||||
with certain Nvdia graphics cards) make the default videosink d3d11videosink, and
|
|
||||||
use its decoder */
|
|
||||||
if (videosink == "autovideosink") {
|
|
||||||
videosink.erase();
|
|
||||||
videosink.append("d3d11videosink");
|
|
||||||
}
|
|
||||||
if (videosink == "d3d11videosink") {
|
|
||||||
video_decoder.erase();
|
|
||||||
video_decoder.append("d3d11h264dec");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (videosink == "0") {
|
if (videosink == "0") {
|
||||||
use_video = false;
|
use_video = false;
|
||||||
videosink.erase();
|
videosink.erase();
|
||||||
@@ -2635,7 +2622,7 @@ int main (int argc, char *argv[]) {
|
|||||||
if (videosink == "waylandsink" || videosink == "vaapisink") {
|
if (videosink == "waylandsink" || videosink == "vaapisink") {
|
||||||
videosink_options.append(" fullscreen=true");
|
videosink_options.append(" fullscreen=true");
|
||||||
} else if (videosink == "kmssink") {
|
} else if (videosink == "kmssink") {
|
||||||
videosink_options.append(" force_modesetting=true");
|
videosink_options.append(" force_modesetting=true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user