FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.53k stars 78 forks source link

WSL2 implementation (and MINGW fix) #278

Closed RealSourceOfficial closed 5 months ago

RealSourceOfficial commented 5 months ago

Hello all, I've been working on installing UxPlay on Windows for a while, and I've recently moved to the standard MINGW installation (instead of doing my standard method of brute forcing an Ubuntu WSL image until something works, as i ran out of ideas...) and I've ran into a difficult issue.

Windows Issues

Now, I'm not very familiar with MINGW, but I'd imagine it's somewhat like linux, and most of it seems to make sense to me. Though this is definitely an error.

source@SI-HUB MINGW64 ~/UxPlay/build
$ uxplay
UxPlay 1.68: An Open-Source AirPlay mirroring and audio-streaming server.
Required gstreamer plugin 'libav' not found
Missing plugin is contained in  '[GStreamer 1.x]-libav'
Required gstreamer plugin 'autodetect' not found
Missing plugin is contained in  '[GStreamer 1.x]-plugins-good'
Required gstreamer plugin 'videoparsersbad' not found
Missing plugin is contained in  '[GStreamer 1.x]-plugins-bad'

if the plugin is installed, but not found, your gstreamer registry may have been corrupted.
to rebuild it when gstreamer next starts, clear your gstreamer cache with:
"rm -rf ~/.cache/gstreamer-1.0"

*** ERROR: stopping

#tried clearing cache as suggested.

source@SI-HUB MINGW64 ~/UxPlay/build
$ rm -rf ~/.cache/gstreamer-1.0

source@SI-HUB MINGW64 ~/UxPlay/build
$ pacman -S mingw-w64-x86_64-gst-plugins-good
resolving dependencies...
looking for conflicting packages...
:: mingw-w64-x86_64-gettext-runtime and mingw-w64-x86_64-gettext are in conflict. Remove mingw-w64-x86_64-gettext? [Y/n] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-cairo
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-glib2
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-gstreamer
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-libidn2
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-libpsl
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-libtre-git
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-p11-kit
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-rhash
:: removing mingw-w64-x86_64-gettext breaks dependency 'mingw-w64-x86_64-gettext' required by mingw-w64-x86_64-xz   

I followed the compilation instructions to a tee, including a brand new installation of MINGW. Curiously, Apple's developer website no longer seems to have a downloadable copy of the Bonjour SDK, and therefore I got it from Softpedia.

WSL setup, if anyone is interested.

If anyone wants to take a look at the issues I'm having with WSL,

General console issues, no direct output errors found:

With all videosinks
``` sourceofficial@SI-HUB:~$ uxplay -p 2958,2959,2960 -n SI-HUB-UNIX -vs gtkglsink using system MAC address 00:15:5d:9d:30:fc Initialized server socket(s) (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.375: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.402: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.407: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.423: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.438: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.454: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.469: gst_video_center_rect: assertion 'src->h != 0' failed (uxplay:25143): GStreamer-Video-CRITICAL **: 23:22:29.485: gst_video_center_rect: assertion 'src->h != 0' failed ```
Without any videosink defined
``` sourceofficial@SI-HUB:~$ uxplay -p 2958,2959,2960 -n SI-HUB-UNIX Segmentation fault ```
Extra stack traces (from #155)
``` sourceofficial@SI-HUB:~$ strace -o /tmp/ss uxplay -vs gtkglsink -p 2958,2959,2960 -d supported audio format 1: AAC-ELD 44100/2 supported audio format 2: ALAC 44100/16/2 supported audio format 3: AAC-LC 44100/2 supported audio format 4: PCM 44100/16/2 S16LE Initialized GStreamer video renderer using system MAC address 00:15:5d:9d:30:fc Initialized server socket(s) (uxplay:29290): GStreamer-Video-CRITICAL **: 23:36:41.704: gst_video_center_rect: assertion 'src->h != 0' failed # again, the above error shows up with what seems to be every video sink. ```
Poll info - very long.
``` # Checking polls (got to admit, no idea what this is for but someone may know what their doing more than me. sourceofficial@SI-HUB:~$ cat /tmp/ss | grep poll poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=20, events=POLLOUT}], 1, 0) = 1 ([{fd=20, revents=POLLOUT}]) poll([{fd=20, events=POLLIN}], 1, -1) = 1 ([{fd=20, revents=POLLIN}]) poll([{fd=20, events=POLLOUT}], 1, -1) = 1 ([{fd=20, revents=POLLOUT}]) poll([{fd=20, events=POLLIN}], 1, -1) = 1 ([{fd=20, revents=POLLIN}]) poll([{fd=20, events=POLLOUT}], 1, -1) = 1 ([{fd=20, revents=POLLOUT}]) poll([{fd=20, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=20, revents=POLLOUT}]) poll([{fd=20, events=POLLIN}], 1, 25000) = 1 ([{fd=20, revents=POLLIN}]) poll([{fd=20, events=POLLIN}], 1, 25000) = 1 ([{fd=20, revents=POLLIN}]) poll([{fd=21, events=POLLOUT}], 1, 0) = 1 ([{fd=21, revents=POLLOUT}]) poll([{fd=21, events=POLLIN}], 1, -1) = 1 ([{fd=21, revents=POLLIN}]) poll([{fd=21, events=POLLOUT}], 1, -1) = 1 ([{fd=21, revents=POLLOUT}]) poll([{fd=21, events=POLLIN}], 1, -1) = 1 ([{fd=21, revents=POLLIN}]) poll([{fd=21, events=POLLOUT}], 1, -1) = 1 ([{fd=21, revents=POLLOUT}]) poll([{fd=21, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=21, revents=POLLOUT}]) poll([{fd=21, events=POLLIN}], 1, 25000) = 1 ([{fd=21, revents=POLLIN}]) poll([{fd=23, events=POLLIN}], 1, 25000) = 1 ([{fd=23, revents=POLLIN}]) poll([{fd=23, events=POLLIN}], 1, 25000) = 1 ([{fd=23, revents=POLLIN}]) poll([{fd=23, events=POLLIN}], 1, 25000) = 1 ([{fd=23, revents=POLLIN}]) poll([{fd=23, events=POLLIN}], 1, 25000) = 1 ([{fd=23, revents=POLLIN}]) poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=14, events=POLLIN}], 1, -1) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=33, events=POLLOUT}], 1, 0) = 1 ([{fd=33, revents=POLLOUT}]) poll([{fd=33, events=POLLIN}], 1, -1) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLOUT}], 1, -1) = 1 ([{fd=33, revents=POLLOUT}]) poll([{fd=33, events=POLLIN}], 1, -1) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLOUT}], 1, -1) = 1 ([{fd=33, revents=POLLOUT}]) poll([{fd=33, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=33, revents=POLLOUT}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=33, events=POLLIN}], 1, 25000) = 1 ([{fd=33, revents=POLLIN}]) poll([{fd=38, events=POLLOUT}], 1, 0) = 1 ([{fd=38, revents=POLLOUT}]) poll([{fd=38, events=POLLIN}], 1, -1) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLOUT}], 1, -1) = 1 ([{fd=38, revents=POLLOUT}]) poll([{fd=38, events=POLLIN}], 1, -1) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLOUT}], 1, -1) = 1 ([{fd=38, revents=POLLOUT}]) poll([{fd=38, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=38, revents=POLLOUT}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=38, events=POLLIN}], 1, 25000) = 1 ([{fd=38, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 3 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}, {fd=21, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 3 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}, {fd=21, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 3 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}, {fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 2 ([{fd=11, revents=POLLIN}, {fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 16586) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 16585) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 13918) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 13917) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 12882) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 400) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 400) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 400) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 298) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 298) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 298) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 12365) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=11, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 500) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 5) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 5) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 1) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 4) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 5) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 5) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 6) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 1 ([{fd=13, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 0) = 0 (Timeout) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 11460) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 11458) = 1 ([{fd=14, revents=POLLIN}]) poll([{fd=11, events=POLLIN}, {fd=13, events=POLLIN}, {fd=14, events=POLLIN}, {fd=21, events=POLLIN}], 4, 11456) = ? ERESTART_RESTARTBLOCK (Interrupted by signal) ```
``` # RUNNING UxPlay IN SEPERATE TERMINATOR WINDOW | uxplay -p 2958,2959,2960 -n SI-HUB-UNIX -vs gtkglsink sourceofficial@SI-HUB:~$ avahi-browse -a -t + eth0 IPv6 SI-HUB-UNIX@SI-HUB AirPlay Remote Video local + eth0 IPv4 SI-HUB-UNIX@SI-HUB AirPlay Remote Video local + lo IPv4 SI-HUB-UNIX@SI-HUB AirPlay Remote Video local + eth0 IPv6 00155D9D30FC@SI-HUB-UNIX@SI-HUB AirTunes Remote Audio local + eth0 IPv4 00155D9D30FC@SI-HUB-UNIX@SI-HUB AirTunes Remote Audio local + lo IPv4 00155D9D30FC@SI-HUB-UNIX@SI-HUB AirTunes Remote Audio local ```
Avahi Config file
``` sourceofficial@SI-HUB:~$ cat /etc/avahi/avahi-daemon.conf # This file is part of avahi. # # avahi is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # avahi is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with avahi; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # See avahi-daemon.conf(5) for more information on this configuration # file! [server] #host-name=foo #domain-name=local #browse-domains=0pointer.de, zeroconf.org use-ipv4=yes use-ipv6=yes #allow-interfaces=eth0 #deny-interfaces=eth1 #check-response-ttl=no #use-iff-running=no #enable-dbus=yes #disallow-other-stacks=no #allow-point-to-point=no #cache-entries-max=4096 #clients-max=4096 #objects-per-client-max=1024 #entries-per-entry-group-max=32 ratelimit-interval-usec=1000000 ratelimit-burst=1000 [wide-area] enable-wide-area=yes [publish] #disable-publishing=no #disable-user-service-publishing=no #add-service-cookie=no #publish-addresses=yes publish-hinfo=no publish-workstation=no #publish-domain=yes #publish-dns-servers=192.168.50.1, 192.168.50.2 #publish-resolv-conf-dns-servers=yes #publish-aaaa-on-ipv4=yes #publish-a-on-ipv6=no [reflector] #enable-reflector=no #reflect-ipv=no #reflect-filters=_airplay._tcp.local,_raop._tcp.local [rlimits] #rlimit-as= #rlimit-core=0 #rlimit-data=8388608 #rlimit-fsize=0 #rlimit-nofile=768 #rlimit-stack=8388608 #rlimit-nproc=3 ```

Additional Information

For Windows runtime:

Installed GStreamer packages
``` sourceofficial@SI-HUB:~$ sudo apt list --installed | grep gst WARNING: apt does not have a stable CLI interface. Use with caution in scripts. gir1.2-gst-plugins-base-1.0/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed,automatic] gir1.2-gstreamer-1.0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed,automatic] gstreamer1.0-adapter-pulseeffects/jammy,now 4.8.4-1 amd64 [installed] gstreamer1.0-alsa/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed] gstreamer1.0-autogain-pulseeffects/jammy,now 4.8.4-1 amd64 [installed] gstreamer1.0-clutter-3.0/jammy-updates,now 3.0.27-2ubuntu1 amd64 [installed] gstreamer1.0-convolver-pulseeffects/jammy,now 4.8.4-1 amd64 [installed] gstreamer1.0-crystalizer-pulseeffects/jammy,now 4.8.4-1 amd64 [installed] gstreamer1.0-espeak/jammy,now 0.5.0-1 amd64 [installed] gstreamer1.0-fdkaac/jammy,now 1.20.0-1 amd64 [installed] gstreamer1.0-gl/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed] gstreamer1.0-gtk3/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-libav/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed] gstreamer1.0-nice/jammy,now 0.1.18-2 amd64 [installed] gstreamer1.0-omx-bellagio-config/jammy,now 1.18.3-1 amd64 [installed] gstreamer1.0-omx-generic-config/jammy,now 1.18.3-1 amd64 [installed] gstreamer1.0-omx-generic/jammy,now 1.18.3-1 amd64 [installed] gstreamer1.0-opencv/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-packagekit/jammy,now 1.2.5-2ubuntu2 amd64 [installed] gstreamer1.0-pipewire/jammy-updates,now 0.3.48-1ubuntu3 amd64 [installed] gstreamer1.0-plugins-bad-apps/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-plugins-bad/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-plugins-base-apps/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed] gstreamer1.0-plugins-base/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed] gstreamer1.0-plugins-good/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-plugins-rtp/jammy,now 1.14.4.1 amd64 [installed] gstreamer1.0-plugins-ugly/jammy,now 1.20.1-1 amd64 [installed] gstreamer1.0-pocketsphinx/jammy,now 0.8.0+real5prealpha+1-14ubuntu1 amd64 [installed] gstreamer1.0-pulseaudio/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-python3-plugin-loader/jammy,now 1.20.1-1 amd64 [installed] gstreamer1.0-qt5/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-rtsp/jammy,now 1.20.1-1 amd64 [installed] gstreamer1.0-tools/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed] gstreamer1.0-vaapi/jammy-updates,now 1.20.1-1ubuntu1 amd64 [installed] gstreamer1.0-wpe/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed] gstreamer1.0-x/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed] libclutter-gst-3.0-0/jammy-updates,now 3.0.27-2ubuntu1 amd64 [installed,automatic] libgstreamer-gl1.0-0/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed,automatic] libgstreamer-opencv1.0-0/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed,automatic] libgstreamer-plugins-bad1.0-0/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed,automatic] libgstreamer-plugins-base1.0-0/jammy-updates,jammy-security,now 1.20.1-1ubuntu0.1 amd64 [installed,automatic] libgstreamer-plugins-good1.0-0/jammy-updates,jammy-security,now 1.20.3-0ubuntu1.1 amd64 [installed,automatic] libgstreamer1.0-0/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed] libgstreamer1.0-dev/jammy-updates,now 1.20.3-0ubuntu1 amd64 [installed] libgstrtspserver-1.0-0/jammy,now 1.20.1-1 amd64 [installed,automatic] python3-gst-1.0/jammy,now 1.20.1-1 amd64 [installed,automatic] ```
fduncanh commented 5 months ago

We'll check if anything in recent updates to msys2 has broken anything in the windows build. (other possibility is something misconfigured on your system). (may take a day or so)

Yes a WSL implementation would be interesting. Can you post details(or link to info) on wsl.

EDIT your issue seem to be a mysys2 issue. try uninstalling gettext with some kind of --force option to pacman that leaves dependencies in place, then reinstall.

see man pacman for the correct syntax.

or just uninstall and reinstall msys2

RealSourceOfficial commented 5 months ago

Windows Installation

your issue seem to be a mysys2 issue. try uninstalling gettext with some kind of --force option to pacman that leaves dependencies in place, then reinstall.

Alright, I ran

source@SI-HUB MINGW64 ~
$ uxplay
UxPlay 1.68: An Open-Source AirPlay mirroring and audio-streaming server.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.523: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstadaptivedemux2.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.532: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstamfcodec.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.538: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstanalyticsoverlay.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.558: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstcamerabin.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.561: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstchromaprint.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.567: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstcodec2json.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.570: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstcodectimestamper.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.582: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstd3d11.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.586: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstdash.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.597: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstdtsdec.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.602: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstdwrite.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.606: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstfaac.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.608: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstfaad.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.611: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstfdkaac.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.615: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstflac.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.617: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstfluidsynthmidi.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.630: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgsthls.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.635: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstinsertbin.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.639: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstisomp4.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.644: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstjpegformat.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.647: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstlc3.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.661: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstlibav.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.664: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmicrodns.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.672: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmpegtsdemux.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.675: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmpegtsmux.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.677: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmpg123.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.680: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmse.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.682: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmultifile.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.685: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmusepack.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.691: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstnvcodec.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.699: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstopenh264.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.702: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstopenjpeg.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.709: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstqsv.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.714: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstresindvd.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.722: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstrtp.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.726: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstrtsp.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.728: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsctp.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.733: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstshout2.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.738: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsmoothstreaming.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.741: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsndfile.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.743: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsoundtouch.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.746: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsoup.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.748: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstspandsp.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.753: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsrtp.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.758: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgsttaglib.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.763: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgsttwolame.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.769: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvideoparsersbad.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.773: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvoamrwbenc.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.775: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvpx.dll': The specified procedure could not be found.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.779: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvulkan.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.783: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstwavpack.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.789: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstwebrtc.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.792: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstwebrtcdsp.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.

(uxplay.exe:9380): GStreamer-WARNING **: 10:39:43.800: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstzbar.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.
Required gstreamer plugin 'libav' not found
Missing plugin is contained in  '[GStreamer 1.x]-libav'
Required gstreamer plugin 'autodetect' not found
Missing plugin is contained in  '[GStreamer 1.x]-plugins-good'
Required gstreamer plugin 'videoparsersbad' not found
Missing plugin is contained in  '[GStreamer 1.x]-plugins-bad'

if the plugin is installed, but not found, your gstreamer registry may have been corrupted.
to rebuild it when gstreamer next starts, clear your gstreamer cache with:
"rm -rf ~/.cache/gstreamer-1.0"

*** ERROR: stopping

Just went and reinstalled plugins-good, plugins-bad, and libav,

and got this large (but definitely smaller) error
``` source@SI-HUB MINGW64 ~ $ uxplay UxPlay 1.68: An Open-Source AirPlay mirroring and audio-streaming server. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.318: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstadaptivedemux2.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.325: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstamfcodec.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.331: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstanalyticsoverlay.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.355: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstcodec2json.dll': The specified module could not be found. This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct. You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL. There are also some third-party GUIs to list and debug DLL dependencies recursively. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.357: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstcodectimestamper.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.368: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstd3d11.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.406: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstisomp4.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.411: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstjpegformat.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.427: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstlibav.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.436: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmpegtsdemux.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.440: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstmultifile.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.446: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstnvcodec.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.454: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstopenjpeg.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.459: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstqsv.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.469: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstrtp.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.473: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstrtsp.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.480: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsmoothstreaming.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.492: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstsrtp.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.504: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvideoparsersbad.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.509: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvpx.dll': The specified procedure could not be found. (uxplay.exe:17256): GStreamer-WARNING **: 10:43:57.511: Failed to load plugin 'C:\msys64\mingw64\lib\gstreamer-1.0\libgstvulkan.dll': The specified procedure could not be found. Required gstreamer plugin 'libav' not found Missing plugin is contained in '[GStreamer 1.x]-libav' Required gstreamer plugin 'autodetect' not found Missing plugin is contained in '[GStreamer 1.x]-plugins-good' Required gstreamer plugin 'videoparsersbad' not found Missing plugin is contained in '[GStreamer 1.x]-plugins-bad' if the plugin is installed, but not found, your gstreamer registry may have been corrupted. to rebuild it when gstreamer next starts, clear your gstreamer cache with: "rm -rf ~/.cache/gstreamer-1.0" *** ERROR: stopping ```

Here's the entire log if you need. Not sure where to go from here.

WSL Installation

Sure, I'm happy to help with getting WSL officially supported, however I don't know what information to actually provide. Here's a couple of resources I used to get to where I am, however.

RealSourceOfficial commented 5 months ago

Windows Installation - Solved

Update - reinstalled MSYS2 using this guide

Ran into some issues with 184438649 [main] -bash 1477 dofork: child -1 - forked process 3964 died unexpectedly, retry 0, exit code 0xC0000142, errno 11, but I restarted MSYS2 and it seemed to go away.

Log of most recent installation process, from scratch

Now it seems to work just fine. Going to keep this issue open to (hopefully) figure out WSL/WSL2 implementations.

fduncanh commented 5 months ago

raop_rtp_mirror starting mirroring Begin streaming to GStreamer video pipeline *** ERROR: raop_rtp_mirror error in accept 0 No error Connection closed for socket 7364 Connection closed for socket 7824

is uxplay working for you? your output shows some error?

I just checked that the latest uxplay 1.68 from github works fine on msys2/windows with the latest gstreamer-1.24

RealSourceOfficial commented 5 months ago

raop_rtp_mirror starting mirroring Begin streaming to GStreamer video pipeline *** ERROR: raop_rtp_mirror error in accept 0 No error Connection closed for socket 7364 Connection closed for socket 7824

is uxplay working for you? your output shows some error?

Yeah, those seem to be just internal errors, I can stream no problem. It is a bit laggy, but I think that's only normal with video streaming.

fduncanh commented 5 months ago

I'll close this, but continue to post any WSL news you have , we will see it.

RealSourceOfficial commented 5 months ago

Note: this is an unfinished guide.

mDNS (per RFC guidelines, RFC6762 and RFC6763) is not meant to be forwarded through another subnet. Therefore, port forwarding :5353 is not enough to get it to work. This guide is ONLY for documentation purposes, as it does not produce a result that allows any external device to connect to UxPlay.

Installing UxPlay from scratch using WSL2:

1. Installing WSL2

If you already have a working WSL2 installation of Ubuntu (tested with 22.04 LTS), you can skip to step 2
If not, view the guide on getting started here

Ensure your VM is running WSL2! WSL does NOT have the same network capabilities.

To do this, use exit to exit any open WSL console, open a new powershell terminal, and use the following command:

wsl --set-version [name of your installation] 2

2. Installing required packages

DO NOT INSTALL UXPLAY FROM APT!

Latest UxPlay Version on aptitude (as of 4/3/24) is version 1.46.

First, update repositories with

sudo apt-get update

and optionally

sudo apt-get upgrade

before installing any packages with

sudo apt-get install [package]

To run UxPlay, the following packages are needed:

Required:

3. Building UxPlay

First, ensure you're in the user directory by running

cd ~

Then, clone the repository by running

git clone https://github.com/FDH2/UxPlay

Enter the UxPlay directory

cd UxPlay

Build.

cmake . && make

4. Installing a XServer to use GUI applications

WSL Natively doesn't support GUI applications. Therefore, we have to install an X-Server on the Windows host to passthrough any GUI apps WSL wants to run.

To get started, head over to this link and download VcXsrv.
After installing VcXsrv, head over to your desktop, right click -> New -> Shorcut to create a new shorcut to easily access and start the XServer.
image

Assuming you used the default installation path for VcXsrv, set the location to the following command:

"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -dpi auto 

Double click on the shortcut on your desktop to start the XServer. This is how you will start it when need be.

If your not sure if it's running, head over to the system tray (the upward facing arrow near the clock) and look for an 'X' icon. It should look identical to the one on your desktop. Otherwise, you can head over to a command line and use the following command to ensure it's running.

netstat -abno|findstr 6000

The output should look somewhat similar to this:

TCP 0.0.0.0:6000     0.0.0.0:0       LISTENING   8280
TCP 127.0.0.1:6000   127.0.0.1:50808 ESTABLISHED 8280

Head back over to your WSL console and use

nano ~/.profile

and add the following line to the end of the file:

export DISPLAY=$(hostame -I | cut -d " " -f 2):0

Exit nano by pressing CTRL+X, Y, Enter to save the file.

After your done, run

. ~/.profile

to reload your configuration.

5. Setting up network configuration

You want to be able to see UxPlay on your network, right? To start with this, head over to a new powershell session, and run the following command to get the IP address of your WSL installation:

wsl hostname -I

And then run the following command 3 times with 3 different ports of your choosing (that ARE NOT in use by any other program), as well as once with port 5353.

netsh interface portproxy add v4tov4 listenport=[port] listenaddress=0.0.0.0 connectport=[port] connectaddress=[your WSL ip address]

After you've opened those 4 ports, you now need to allow them through the windows firewall. This is acheived by running the following command 3 times for BOTH UDP/TCP, as well as once more for port 5353 on UDP (7 times in total!):

 New-NetFirewallRule -DisplayName "[some name]" -Direction Inbound -Action Allow -Protocol [TCP/UDP] -LocalPort [port]
This process will look a little something like this
```ps PS C:\WINDOWS\system32> netsh interface portproxy add v4tov4 listenport=2958 listenaddress=0.0.0.0 connectport=2958 connectaddress=172.31.46.46 PS C:\WINDOWS\system32> netsh interface portproxy add v4tov4 listenport=2959 listenaddress=0.0.0.0 connectport=2959 connectaddress=172.31.46.46 PS C:\WINDOWS\system32> netsh interface portproxy add v4tov4 listenport=2960 listenaddress=0.0.0.0 connectport=2960 connectaddress=172.31.46.46 PS C:\WINDOWS\system32> netsh interface portproxy add v4tov4 listenport=5353 listenaddress=0.0.0.0 connectport=5353 connectaddress=172.31.46.46 PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2958" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2958 Name : {5f5f2de3-0f72-4b3f-abb6-e053befb0f76} DisplayName : UxPlay - WSL2 - 2958 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2959" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2959 Name : {607907ab-ab99-405e-aa9b-555a0cc2ae32} DisplayName : UxPlay - WSL2 - 2959 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2960" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2960 Name : {99422d50-8957-411f-8636-8990d01b04cf} DisplayName : UxPlay - WSL2 - 2960 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2958" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 2958 Name : {1de1cc48-d39f-496e-8783-49becb3157b8} DisplayName : UxPlay - WSL2 - 2958 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2959" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 2959 Name : {4de39177-6121-43ef-ab31-1724a37cc152} DisplayName : UxPlay - WSL2 - 2959 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 2960" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 2960 Name : {a2084d63-2ff5-4283-8468-a61b382dc9f0} DisplayName : UxPlay - WSL2 - 2960 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "UxPlay - WSL2 - 5353" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 5353 Name : {fd1bec65-5922-4907-bf7e-f3f970d37f9f} DisplayName : UxPlay - WSL2 - 5353 Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : The rule was parsed successfully from the store. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : ```

This is the bit that still needs to be figured out. mDNS forwarding.

For now we are starting with udp-redux's udp-broadcast-relay-redux, which has been used on OPNSense/PFsense routers to forward mDNS packets to other VLANs.

In a lot of cases, mDNS cannot be forwared just by allowing it through the firewall.

To start, run

cd ~ && git clone https://github.com/udp-redux/udp-broadcast-relay-redux

then, run

cd udp-broadcast-relay-redux && make

to build the pacakge,

sudo ./udp-broadcast-relay-redux --id 1 --port 5353 --dev eth0 --multicast 224.0.0.251 -s 1.1.1.1

if you get an error such as ioctl(SIOCGIFINDEX): No such device, install the package net-tools and run ifconfig to find your interface device, and replace --dev eth0 with --dev [your device]

6. Running UxPlay

Now it's finally time to run UxPlay.
Seeing as how running the command uxplay will only result in a segfault, you need to specify a videosink for it to run on - I've only seen gtkglsink work.

Additionally, you need to tell UxPlay to use the 3 ports you opened earlier to allow broadcasting to the local network.

To do all this, run uxplay like this:

uxplay -vs [sink] -p [port1,port2,port3]

Alternatively, if your ports are in a row (e.g. 2958, 2959, 2960, like mine) you can run

uxplay -vs [sink] -p 2958

instead, and it will automatically bind to the next two ports.

thiccaxe commented 5 months ago

Another idea - disable mdns on UxPlay and do it using a python script on the windows host.

fduncanh commented 5 months ago

use the startup options file ~/.uxplayrc to set startup options.

did you try -vs d3d11videosink ?

ubuntu 24.04 LTS will have uxplay-1.68 (relase is in 2 weeks from now)

RealSourceOfficial commented 5 months ago

ubuntu 24.04 LTS will have uxplay-1.68 (relase is in 2 weeks from now)

This is on Ubuntu 22.04 LTS. I'll try d3d11, however it doesn't help if I can't connect to the client in the first place (see the note at the top of the guide.)

RealSourceOfficial commented 5 months ago

Update on video sinks

I am aware that having VAAPI sink installed causes other issues with SOME GPUs (See here). However, I tried all of the available sinks.

Video Sink Status
aasink Doesn't work Error
cacasink Works
decklinkvideosink Doesn't work Error
fbdevsink Doesn't work Error
gtkglsink Works, with Error
gtksink Works, with Error
intervideosink Doesn't work, No Error.
kmssink Doens't work Error
glimagesink Doesn't work Error
glimagesinkelement Doesn't work Error
v4l2sink Doesn't work Error
waylandsink Doesn't work Error
ximagesink Doesn't work, No Error
xvimagesink Doesn't work Error

For some reason, vaapi sink will not show up using gst-inspect-1.0 | grep sink | grep -e video -e Video -e image, despite it being installed with gstreamer1.0-vaapi. It has showed up previously on another ubuntu WSL machine, however I cannot get it to show up again.

Errors
### aasink Error ```bash X Error of failed request: BadName (named color or font does not exist) Major opcode of failed request: 45 (X_OpenFont) Serial number of failed request: 7 Current serial number in output stream: 8 ``` ### decklinkvideosink Error ```bash GStreamer error: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure. *** ERROR: Failed to initialize GStreamer video renderer Initialized server socket(s) ``` ### fbdevsink Error ```bash GStreamer error: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure. *** ERROR: Failed to initialize GStreamer video renderer Initialized server socket(s) ``` ### gtkglsink Error ```bash (uxplay:3010): GStreamer-Video-CRITICAL **: 09:57:10.144: gst_video_center_rect: assertion 'src->h != 0' failed ``` ### gtksink Error ```bash (uxplay:3267): GStreamer-Video-CRITICAL **: 09:57:55.615: gst_video_center_rect: assertion 'src->h != 0' failed ``` ### kmssink Error ```bash GStreamer video pipeline will be: "appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! kmssink name=video_sink sync=true" *** ERROR: Failed to initialize GStreamer video renderer Initialized server socket(s) GStreamer error: Could not open DRM module (NULL) Exiting HTTP thread ``` ### glimagesink Error (ONLY on close) ```bash Segmentation fault ``` ### glimagesinkelement Error (ONLY on close) ```bash Segmentation fault ``` ### v4l2sink Error ```bash GStreamer video pipeline will be: "appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! v4l2sink name=video_sink sync=true" *** ERROR: Failed to initialize GStreamer video renderer Initialized server socket(s) GStreamer error: Cannot identify device '/dev/video1'. Exiting HTTP thread ``` ### waylandsink Error ```bash ** (uxplay:6514): WARNING **: 10:08:54.371: Could not bind to zwp_linux_dmabuf_v1 Initialized GStreamer video renderer ``` ### xvimagesink Error ```bash GStreamer video pipeline will be: "appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! xvimagesink name=video_sink sync=true" *** ERROR: Failed to initialize GStreamer video renderer Initialized server socket(s) GStreamer error: Could not initialise Xv output Exiting HTTP thread ```

did you try -vs d3d11videosink ?

This doesn't work on a WSL 2 instance. I tried installing gstreamer1.0-d3d11 (as i'd assume this is the d3d11 package) and nothing showed up on the repo.