Coding Chase - Projects

My 3D Hub

Thank You For Donating:

Ikeeki (linux-sunxi@irc.freenode.net)
Computer Troubleshooters Brasil

Tuesday 22 April 2014

Sapo Codebits 2014

A couple of weeks back, Sapo Codebits VII happened.

I had never been, but a friend - and veteran of sorts in these matters - convinced me into going.

... and boy, did it pay off. The event was awesome, the talks, the workshops - even squeezing in some time to do a simple notifications bot with nodeJS and Raspberry Pi, just for kicks!

The venue, the spirit, the drive... if you're anything like me and you're reading this, you have to check it out!

Hopefully next year they'll be back, and so will I...! :)

Thursday 3 April 2014

Cubieboard A20: GStreamer VDPAU

So following my previous post, I started messing around with GStreamer and VDPAU.

GStreamer includes VDPAU support in the gst-plugins-bad package, on the 0.10 branch.

Since I've been using Linaro Ubuntu as the OS for my experiments with Qt5, I sticked with it for GStreamer as well and soon found out that VDPAU support was nowhere to be found.

So, back to basics - I uninstalled the plugins-bad package provided by Linaro Ubuntu and picked up the sources for it. After some tweaking and fiddling, I got it to natively compile on my Cubieboard A20 - and not long after that, I had:

linaro@linaro-alip:~$ gst-inspect-0.10 | grep vdpau
vdpau:  vdpaumpegdec: VDPAU Mpeg Decoder
vdpau:  vdpauh264dec: VDPAU H264 Decoder
vdpau:  vdpaumpeg4dec: VDPAU Mpeg4 Decoder
vdpau:  vdpauvideopostprocess: VdpauVideoPostProcess
vdpau:  vdpausink: VDPAU Sink
 
... but things didn't turn out that great - I stumbled on the following error:

Failed to open VDPAU backend /usr/lib/arm-linux-gnueabihf/libvdpau_sunxi.so: undefined symbol: XTranslateCoordinates
 
So after asking for help on #linux-sunxi at freenode, the clever folks there got me past it and here's the result :)

Wednesday 2 April 2014

Qt 5.2.1 + GStreamer - HW Acceleration

Yesterday, a user posted his work with Cubieboard, Qt 5 and GStreamer on the Forum Thread. While it is unclear if this was achieved with A10 or A20 (the dealxtreme package that was referred to doesn't clarify if it's an A10 or an A20 board) I decided to take my recent build for a spin and see if the GStreamer performance was in any way similar/better/worse than what was presented.

Having said that, I published a video on my youtube channel comparing video playback for both the video used by semlanik (DiVX) and another Big Buck Bunny sample, using h264 - using my setup.

As stated, on my side this was all done using Qt 5.2.1 and stock GStreamer 0.10, integrated with QtMultimedia, from the work done last month - not much effort there, QtMultimedia/GStreamer integration is pretty straight-forward, no optimizations done to GStreamer as I haven't yet started working on those.

The DiVX video is playing normally and with graphical effects on top - I used the included qmlvideofx sample app, cross-compiled from Qt Creator on my laptop and remotely deployed over SSH to Cubieboard (A20).

When selecting the h264 video, problems arise. I've replied to semlanik in hope of confirming (or not) the current issues with h264 on his side as well, hopefully he'll reply soon.

Regarding GStreamer acceleration, one possibility would be to use the Cedrus project, integrate libvdpau-sunxi with GStreamer on Cubie (and quite possibly this would only work on an X11 environment, due to VDPAU requirements).

Another possibility would be to resort to libhybris.

For a quick run-down regarding accelerated video on Cubie, there's also this interesting wiki page.