CedarX

From linux-sunxi.org
Jump to: navigation, search

CedarX is Allwinner's multimedia co-processing technology for hardware accelerated video and image decoding, as used inside their A10 SoC's and others.[1][2]

Contents

Overview

CedarX is composed of several parts, including:

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

Note! There seems to be a distinction in the Android code between audio decoding ("CedarA") and video decoding ("CedarX").

Benefits to Allwinner's CedarX technology and libraries:

  • Efficient use of system resources when decoding multimedia, offloading audio and video decoding to CedarX co-processor so that the CPU so that it can be used for other things, (when CedarX is working as it as it should).
  • Allows small and low-powered ARM systems to playback high resolution/bitrate multimedia content, which would not be possible using software-only decoding using only the CPU.

Disadvantages Allwinner's CedarX technology and libraries:

  • Allwinner's own CedarX proprietary libraries have no clear usage license, so even if the source code for some versions is available the terms-of-use is unknown in open source software.
  • The Android glue code is implemented as a "media player" (parallel to Android's Stagefright multimedia framework) instead of as standard OpenMAX (OMX) components and API's.
  • 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 OpenMAX (OMX) instead would have rendered this a non-issue, with existing projects like GstOpenMAX (GStreamer OpenMAX).

Integration

CedarX official source code libraries and third-party forks

Reverse Engineering

There is some Reverse Engineering in progress, it deserves its own page.

Possibly irrelevant observations

  • There seems to be a distinction in the Android code between audio decoding ("CedarA") and video decoding ("CedarX").

References

  1. http://www.j1nx.nl/buildroot-xbmc-on-mele-a1000-allwinner-a10/ Buildroot XBMC on the Mele A1000 (Allwinner A10)
  2. http://www.cnx-software.com/2012/11/12/xbmc-for-linux-on-allwinner-a10-devices-it-works-sort-of/ XBMC for Linux on AllWinner A10 Devices? It Works! (Sort of)

See also

  • CedarXVideoRenderingChart - Overview chart of working/ non working video files
  • OpenMAX - Open standard API for cross-platform hardware acceleration of audio, image, and video decoding
  • GStreamer - Cross-platform API and ABI for hardware acceleration of audio, image, and video decoding
  • Stagefright - Google's API for hardware acceleration of audio, image, and video decoding on Android
  • FFmpeg - open source software project that produces libraries and programs for handling multimedia data
  • XBMC - XBMC Media Center
  • VLC - VideoLAN Client
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox