CedarX

CedarX is Allwinner's multimedia decoding technology. It is composed of several parts, including:


 * 1) A hardware video decoding unit
 * 2) Proprietary libraries to communicate with the hardware unit
 * 3) Glue code to use those libraries on an actual system with video playback capabilities (e.g. Android)

Benefits

 * Efficient use of system resources when decoding multimedia.
 * Allows small ARM systems to playback high resolution/bitrate multimedia content, which wouldn't be possible using software-only decoding.

Disadvantages

 * The proprietary libraries have no clear usage license.
 * The android glue code is implemented as a "media player" (parallel to stagefright) instead of as OMX components.
 * This media player has limitations when it comes to playing back content pointed to by Android URIs and some web-based content.
 * There is no glue code for any other multimedia frameworks on GNU/Linux systems. The use of OMX would've rendered this a non-issue, with existing projects like GstOpenMAX.

Reverse Engineering
On June 15 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.

Possibly irrelevant observations

 * There seems to be a distinction on the android code between audio decoding ("CedarA") and video decoding ("CedarX")