Saturday, November 27, 2010

Announcing libdce and gst-ducati

And now it is time to take the wraps off of a weekend/evening project I've been working on for the last couple weeks. Last weekend, I wrote libdce which is a small library to allow for remotely accessing the codec-engine API from linux (without needing OpenMAX). And in the last few evenings plus weekend, I wrote a GStreamer plugin, gst-ducati, to decode video using the codec-engine via libdce.

So far, the following decoders are working:
  • ducatih264dec - H.264 (bp/mp/hp)
  • ducatimpeg4dec - MPEG-4
  • ducativc1dec - VC-1 (sp/mp/ap)
  • ducativp6dec - On2 VP6
  • ducativp7dec - On2 VP7
(The H.264 and MPEG-4 decoders are provided in libdce/firmware/dce_app_m3.xem3 which replaces base_image_app_m3.xem3.. for the other codecs, contact your TI representative.)

Why do this, when (a heavily patched) gst-openmax is providing support for hw accelerated decoding? The main answer is that I thought it would be a fun project, and it gives me a way to play with the codecs directly without OpenMAX getting in the way.

Currently libdce is working with L24.9 versions of syslink and kernel, since that seems to be the versions commonly packaged. But next step I'll update libdce to L24.11 for those who like the bleeding edge.


Update: latest master libdce is working on L24.11.. for L24.9 use the corresponding git tag.


  1. Isn't it quite a bit faster than OpenMax? Have you checked? Felipe's gst-dsp plugin is said to be quite abit faster than the OpenMax interface.

  2. Hi,
    I'm trying to use OMAP4 on Pandaboard to encode h264.
    I'v never done this before so, I'm kind of stack.
    Can you give me some pointers on how to achieve this?