knuesel/gst-airplay

Unable to connect to "gstairplay"

Closed this issue · 7 comments

I managed to finish building.

Running gst-inspect-1.0 shows some plugins but doesn't show libgstairplay.so.
I updated the $GST_PLUGIN_PATH to point to the libgstairplay.so object.

I also tried providing the path in gst-launch-1.0, but mirroring still doesn't work. More specifically, I can see gstairplay as a destination, but my ipad simply says ' Unable to connect to "gstairplay" '.

Any pointers would be appreciated!

Can you try again to run gst-inspect-1.0 libgstairplay.so? In this command libgstairplay.so is the path to the plugin file. So if your files look like this:

/home/user
      └── gst-airplay
          ├── ...
          └── build
              ├── ...
              └── libgstairplay.so

and if your current directory is /home/user, you should run this:

gst-inspect-1.0 gst-airplay/build/libgstairplay.so

so that gst-inspect-1.0 can find the file. What do you see if you do this?

Output of gst-inspect-1.0 /home/saisrini/.local/share/gstreamer-1.0/plugins/libgstairplay.so is:

Plugin Details:
  Name                     airplay
  Description              receive video through Apple AirPlay
  Filename                 /home/saisrini/.local/share/gstreamer-1.0/plugins/libgstairplay.so
  Version                  0.1
  License                  GPL
  Source module            gst-airplay-plugin
  Binary package           GStreamer airplay Plug-ins
  Origin URL               https://github.com/knuesel/gst-airplay

  airplaysrc: AirPlay source

  1 features:
  +-- 1 elements

Now if I run gst-launch-1.0 --gst-plugin-path=/home/saisrini/.local/share/gstreamer-1.0/plugins airplaysrc ! queue ! h264parse ! avdec_h264 max-threads=1 ! autovideosink , the output is:

max-threads=1 ! autovideosink
Setting pipeline to PAUSED ...
*** WARNING *** The program 'gst-launch-1.0' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/blog/projects/avahi-compat.html>
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

I presume this is good. I can also find gstairplay as the mirroring destination on my ipad. Unfortunately, I cannot connect to it.

This all looks good indeed... I never had problems connecting from the iPad so I don't have much help to offer. One think you can try is record the debug messages from the pipeline, using the following command:

GST_DEBUG=5,airplaysrc:7: gst-launch-1.0 --gst-plugin-path=/home/saisrini/.local/share/gstreamer-1.0/plugins -v airplaysrc ! queue ! h264parse ! avdec_h264 max-threads=1 ! autovideosink 2> gst.log

Then post the file gst.log here (you can drag-and-drop the file to the comment area on GitHub).

Here the output with GST_DEBUG=5
gst.log

GST_DEBUG=4
gst.log

Also I have intel graphics Intel Corporation UHD Graphics 630 (Mobile) which according to this thread (antimof/UxPlay#32) may be an issue.

I don't see anything wrong in the log... The pipeline state seems correct, then the application is waiting, until you finally give up and interrupt, as seen in these lines of the level-5 log:

0:00:00.549395053  3612 0x55f0380d6c00 DEBUG                GST_BUS gstbus.c:1222:gst_bus_poll: running mainloop 0x55f0383dbf80
0:00:41.208497177  3612 0x55f0380d6c00 DEBUG                GST_BUS gstbus.c:318:gst_bus_post:<bus2> [msg 0x55f0383dd340] posting on bus application message: 0x55f0383dd340, time 99:99:99.999999999, seq-num 47, element 'pipeline0', GstLaunchInterrupt, message=(string)"Pipeline\ interrupted";

I don't think your issue is related to the graphics card: that issue results in a segmentation fault. In your case it seems that the incoming connection from the iPad is never received. It looks a lot more like this problem: https://github.com/FD-/RPiPlay/issues/40

Can you check that you don't have a firewall or other security measure preventing the connection from the iPad to succeed?

@knuesel I had the same issue and it was indeed the firewall, after deactivating it works again

Thanks @matilde-t , I will close the issue then.