CedarX/Reverse Engineering

= Progress history =


 * 15 June 2012
 * Iain Bullard started reverse engineering the proprietary libraries.
 * open_cdxalloc as an free reimplementation of Allwinner's libcederxalloc.a.
 * CedarXWrapper as a LD_PRELOADed wrapper to help understanding the proprietary libraries.
 * CedarXPlayerTest as a basic player to use when testing.


 * 3 May 2013
 * wingrime and oliver started work on register guide, JPEG, MPEG decoding manuals and binary analysis.


 * 20 May 2013
 * nove introduced new MMIO tracer based on Valgrind
 * ReCedro has similar tools as those from IanB above, but with a different angle, works really well.


 * 22 June 2013
 * JPEG decoding proof-of-concept was introduced by Jemk JPEG/MPEG-12 Decoding PoC


 * 30 August 2013
 * Workable proof-of-concept VDPAU decoder was introduced by Jemk support MPEG-1/2 and MPEG-4 AVC/h.264 decoding libvdpau-sunxi


 * 24 August ~ 12 September 2013
 * Paullo612 worked in documenting vp8 decoding.


 * 12 January 2014
 * First MPEG-4 AVC/h.264 encoder proof-of-concept from Jemk


 * 15 January 2014
 * Jpeg encoding proof-of-concept by nove jepoc


 * 31 January 2014
 * Jemk added to libvdpau-sunxi the first support for decoding (some) mpeg4 videos


 * 12 July 2016
 * ubobrov modified Jemk's proof-of-concept h264 encoder sources making them workable on H3 platform

= Current status =

After first having a working jpeg decoder Proof of Concept and following a mpeg12 PoC. These where relative simple engines, but it is now possible to also decode h264.

NOTE debian armhf sid's mplayer have broken vdpau, you should rebuild it by hand!

Curently it support MPEG12 and h264 decoding

While a big fat warning is required here, first a video!

Now, this is only workable proof of concept code, it isn't production ready. Display and CedarX code must be rewritten in ongoing mainline process

= Hardware registers = Blob use direct access to hardware registers using mmap to userspace. Currently known register usage in manuals:


 * VE Register guide
 * ACE Register guide

There's ongoing register documentation effort using envytools.