Preliminary Reverse-Engineered VPU Driver (CedarX) for AllWinner A10 Plays H.264 Videos

Allwinner framework for their Video Processing Unit (VPU) in their Cortex A8 processors (A10, A13, etc..) is called CedarX. It relies on a binary blob that is working just fine for Android, but not so well for Linux. So several developers started to reverse-engineer CedarX a while back, to fix issues with Linux, and provide an open source driver.

Yesterday, they upload a video to show the development progress, and show Big Buck Bunny 1080p H.264 playback using libvdpau-sunxi open source driver with mplayer, and without any binary blobs.  The video resize function are not been implemented yet, which is why we can only see the left corner of video, but nevertheless it shows an open source hardware video decoder is on the way.

That means once the Lima driver for Mali-400 GPU, and libvdpau-sunxi driver for AllWinner VPU are implemented (which may still take a while), AllWinner A10 SoC will be mostly open source, and the only SoC with open source hardware video decoding. I guess the only parts that may not be open source are things such as 2D graphics (See comments), the NAND driver (although people are working on that), and maybe a few other parts I’m missing.

Via Olimex Blog.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Subscribe
Notify of
guest
16 Comments
oldest
newest
Diego.
Diego.
7 years ago

The 2D driver is open source:
https://github.com/ssvb/xf86-video-sunxifb
and is much more optimized than the (open source) xf86-video-mali:
http://ssvb.github.io/2013/02/01/new-xf86-video-sunxifb-ddx-driver.html

pat wood
pat wood
7 years ago

The nand drivers are also open sourced and in the github. A10 nand sources have been available since the original all winner source drop. A20 nand driver sources were committed about 2 months ago.

cb88
cb88
7 years ago

It has an open 3d driver too 😉 http://limadriver.org/

Things look interesting on the rk3188 front as well!

Belta99
Belta99
7 years ago

CNX, is it possible to purchase the source code of video drivers from a company like allwinner or rockchip (e.g. Quad a9 mali mp4 combo) and then make it open source? If so, there might be a case for starting a kickstarter type campaign for a group buy of the code. It’s all well and good to rev engineer , but why not accelerate a solution while the board and chip are still somewhat current in terms of performance. If its a matter of a 100,000 usd or there abouts, I’m sure we can raise the money. It’s just a… Read more »

Belta99
Belta99
7 years ago

@Jean-Luc Aufranc (CNXSoft) O.o I see, it’s a bit more complex than one set of drivers. Yes, buying the company would be out of the question ,:) I don’t know why but to me raising a 100,000 doesn’t seem like too much or too difficult. You need a 1000 users at $100 or 2000 users at $50, 4000 users at $25. I think there would be a lot more people willing to do this if you pick up a generic popular soc config (e.g. Rockchip 3188 quad with Mali mp4). You then get literally 10s of compatible devices in tablet,… Read more »

Paul
Paul
7 years ago

> http://ssvb.github.io/2013/02/01/new-xf86-video-sunxifb-ddx-driver.html

This guy has really interesting blog, albeit posts are rare. CNX, I’d “repost” this: http://ssvb.github.io/2013/06/27/fullhd-x11-desktop-performance-of-the-allwinner-a10.html (unless of course I was under a stone and this was spread around already).

Paul
Paul
7 years ago

> a generic popular soc config (e.g. Rockchip 3188 quad with Mali mp4). Heh. You know which is generic popular soc? PXA255. It was in damn every PocketPC 10 years ago. Ever heard of PocketPC? Every new kid on the block thinks that whatever crap happens in *this* instant of time makes any difference. No, that’s speed-of-light stream, and tomorrow nobody (including you) will need what you wanted today. That’s the problem behind it. However, if you wanted to select “generic popular soc”, the community did its choice – it’s Allwinner A10/A13. WAT? You don’t need that old crap? And… Read more »

m][sko
7 years ago

@Jean-Luc Aufranc (CNXSoft) G2D is not for 2d acceleration. it is for window composition. You can’t draw lines, rectangles, triangles with G2D. basic use case for G2D: use this piece of memory(some picture of window) and copy it here and use alpha channel OpenVG can draw lines, rectangles and other 2D objects. If you ever draw something with graphic context OpenVG is for 2D and OpenGL is for 3D OpenVG can do more 2D stuff. like line patterns, image masks,…. OpenGL api don’t support anything like this. It is all made with frameworks that use basic opengl API I thing… Read more »

Paul
Paul
7 years ago

> OpenVG can do more 2D stuff. like line patterns, image masks,…. OpenGL api don’t support anything like this.

Are you sure it can’t? Because in many products, OpenVG appear to be an API shim on top of OpenGL(ES). Which also answers why OpenVG is not used widely enough – if you can use OpenGL(ES), why bother with another API (even if it’s simpler/more tailored for 2D).

m][sko
7 years ago

@Paul
you can emulate openVG with OpenGL but it is in form of another layer
effects like line patterns and polygon drawing is more complex.
It is all sw vs hw.
Sw layer generate line patterns or something in hw(GPU) handle it for you
It is same as sw opengl emulation in mesa.

Paul
Paul
7 years ago

@m][sko

Can you please provide specific example of OpenVG API call/feature which cannot be (efficiently) implemented in terms of OpenGL? Because your references to line patterns and polygon sound like OpenGL cannot draw a cube with dashed lines or cannot draw a pentagram, all of which it of course can.

m][sko
7 years ago

@Paul
http://www.khronos.org/openvg/
http://www.khronos.org/files/openvg-quick-reference-card.pdf

tesselation (opengl can draw polygon) – opengl es don’t support tessellation. is it OpenGL 4 future ?
line stokes – http://www.java2v.com/Code/CSharp/Windows-Presentation-Foundation/StrokeStartLineCap.htm
diffrent lines – bezier, …
fonts (glyphs)

glut and other layers add a lots of functions but it is all sw

m][sko
7 years ago

from
http://www.khronos.org/files/openvg-quick-reference-card.pdf
for example
polygons – opengl 4.0 and glut support tessellation I think. Opengl es 2.0 don’t
line drawing elements – stroke join styles like http://www.apl.jhu.edu/~hall/java/Java2D-Tutorial-Images/LineStyles.gif

most effects are related to lines and polygons effects
I never saw anything like this in opengl

Paul
Paul
7 years ago

@m][sko: Thanks for detailed references, I now see what you mean. Indeed, these “small” things are easy to overlook, but indeed, they pretty important for quality 2D graphics.

Advertisements