Miracast(WiFi-Display) question on Jetson-TK1?

Hi all,
is there any way to implement Miracast(WiFi-Display) between Android(source) and Jetson-TK1(sink)?

I found two projects, there are openwfd(Miracast) and wds, as follow

  1. GitHub - chenbd/miracle: Wifi-Display/Miracast Implementation
  2. GitHub - intel/wds: Wireless Display Software For Linux OS (WDS)

In case 1, it required >= systemd-209, but it’s systemd-204 in ubuntu-14.04, so I implemented case 2 on Jetson-TK1 and my notebook.

First I tested Miracast on my notebook, here is my environment information.
Android test phone: htc desire 816
notebook OS: Ubuntu 14.04
wifi adapter: AR9485WB-EG (driver is Atheros ath9k)
wpa_supplicant: version 2.5 (git://w1.fi/srv/git/hostap.git)
connman: version 1.28 (Index of /pub/linux/network/connman/)
gstreamer: version 1.5.2 including gstreamer, gst-plugins-base, gst-plugins-bad, gst-plugins-good, gst-plugins-ugly, gst-libav, and orc-0.4.23 (Index of /src)

I followed wds test command in README.md, it worked fine.

Finally, I tested wds on Jetson-TK1, same environment above, just wifi adapter is AR9285(driver is Atheros ath9k), it had connected success, but no display stream.

Any advice?

Does WDS provide any logs showing what happens?

You can make GStreamers to debug print with:

export GST_DEBUG=*:3

Thank you. I use the debug print to find some information, it loses some package like alsa, x264 and x11, so gstreamer source code haven’t build in required elements, after install package and rebuild gstremaer, miracast can work with gstreamer-1.2.4 or 1.5.2 now.

Finally I compiler gstreamer-1.2.4 source code, it works fine with miracast. I guess internal gstreamer1.0 package will be fine, so I uninstall all the gstreamer, and follow Multimedia_User_Guide_V2.1 document to install gstreamer.

sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

It have audio but no video, here is the log with export GST_DEBUG=*:3

0:05:24.629054506  2591 0xb56ce660 WARN             omxvideodec /dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c:2523:gst_omx_video_dec_loop:<omxh264dec-omxh264dec0> Frame is too late, dropping (deadline 0:00:00.035295239)
0:05:24.635523006  2591 0xb56ce660 WARN             omxvideodec /dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c:2523:gst_omx_video_dec_loop:<omxh264dec-omxh264dec0> Frame is too late, dropping (deadline 0:00:00.001961905)
0:05:24.750174839  2591   0x16ec00 ERROR                tsdemux tsdemux.c:1338:gst_ts_demux_queue_data: CONTINUITY: Mismatch packet 13, stream 4
0:05:25.094659339  2591   0x16ec00 ERROR                tsdemux tsdemux.c:1338:gst_ts_demux_queue_data: CONTINUITY: Mismatch packet 2, stream 3
0:05:25.222526172  2591 0xb56ce660 WARN             omxvideodec /dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c:2523:gst_omx_video_dec_loop:<omxh264dec-omxh264dec0> Frame is too late, dropping (deadline 0:00:00.093253551)
0:05:25.222652672  2591 0xb56ce660 WARN             omxvideodec /dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c:2523:gst_omx_video_dec_loop:<omxh264dec-omxh264dec0> Frame is too late, dropping (deadline 0:00:00.059920218)

I prefer to use internal package, because it’s easy to install, and maybe there are more performance by NV improved.