Thursday, May 22, 2014

The new ports of Qt to mobile systems like Android, iOS and WinRT are getting more and
more reliable. I just wanted to have a look at the current stage of development and I
therefore wrote a sample app. This is the result:

This is a quick app to test the portability of Qt on desktop, mobile and embedded.

The video shows client/server code, communicating via WebSockets (using the new WebSockets module in Qt), with a server in Qt/C++ running on Pi and with a fluid hardware accelerated interface in C++/QML running on Raspberry Pi, Mac OS X Maverick, Android Phone and Tablet, Windows 8 (Modern UI), Windows Phone 8, iOS and Linux Kubuntu. The server (on Raspberry Pi) stores information about tasks and the client provides a remote interface to manage. A client written using HTML5 canvas and WebSockets from the browser is also shown.

Unfortunately I don't own iOS and Winphone ARM devices, otherwise I'd add those as well :-) Good start anyway: this is really "write once, deploy anywhere".

This is because it seems that the gstreamer 0.10 ffmpeg plugin is missing in 14.04. This also makes my Qt code fail it seems, as it uses 0.10 for the Qt Multimedia module. It used to be sufficient to
install ubuntu-restricted-extras until 13.10, but it seems something has changed in 14.04. I really couldn't find that plugin anywhere soI simply built that
from the sources here. Luckily it also contains the ffmpeg sources and builds those statically it seems.
Download the package, extract and:

./configure
make
make install

You'll probably need to install the usual build-essentials, gstreamer0.10, libgstreamer0.10,
libgstreamer-plugins-base0.10-dev etc... It may fail with an error on a macro like this: