[theora-dev] Re: [theora] etheora

Ribamar Santarosa de Sousa ribamar.santarosa at gmail.com
Tue Nov 20 10:02:27 PST 2007

On Nov 1, 2007 10:08 AM, Ivo Emanuel Gonçalves <justivo at gmail.com> wrote:
> Hey, this project actually sounds exciting!  Congratulations, Ribamar.

Thanks, Ivo.

> Just be careful that new Theora video now uses the .ogv file

.ogv -> aware.

> extension.  And it should have an Ogg Skeleton track.  Look into the
> ffmpeg2theora source code if you are wondering how to achieve that.

Well, at this stage etheora only supports video, but surely I plan to
add skeleton support. I've been reading the ffmpeg2theora source, is
the skeleton information written only in headers phase or is it
written when the audio/video frames are being written too (can't find,
but didn't make exhaustive search)?

Etheora code  is now under svn.xiph.org:
http://svn.xiph.org/branches/etheora-0.1/ (branches for milestones)
http://svn.xiph.org/experimental/ribamar/etheora/ (nothing warranted
to work in experimental)
http://svn.xiph.org/trunk/etheora (more stable, i plan to cp the first
trunk versin when I figure out the constrast problem described in a
previous mail).

(Rilian or any other): Is there any place to put static html pages
(for doxygen pages, latex2html, a main descriptive page) and maybe a
tar.bz2 file? (no tiny url needed at all)


> -Ivo
> _______________________________________________
> theora mailing list
> theora at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora

From: Ribamar Santarosa de Sousa <ribamar.santarosa at gmail.com>
Date: Oct 31, 2007 11:54 PM
To: theora at xiph.org


I'm about to release a first version of etheora, a simplified api to
programming theora video encoding/decoding applications with ogg
containers. It uses and encapsulates libtheora + libogg API and
structures, so users need to know very few  ,  about video and data

An encoding process is made by these steps:

/*a context declaration.*/
etheora_ctx *ec;

/*encoder configuration.*/
etheora_enc_configure(&ec, width, height, ETHEORA_ASPECT_NORMAL,
fopen("output-video.ogg"), fopen("debug_info.txt"));

/*encoder start.*/

/*drawing next frame, by puting a r,g,b or y,u,v pixel in (i,j) coordinate*/
etheora_enc_rgb_draw(&ec, i, j, r, g, b) (alternative: etheora_enc_yuv_draw()),

/*submiting frame to encoding.*/

/*submiting last frame to encoding by finishing the process.*/

The decoding process is quite similar.
/*a context declaration.*/
etheora_ctx *ec;

/*decoder configuration.*/
etheora_dec_configure(&ec, fopen("input-video.ogg"), fopen("debug_info.txt"));

/*decoder start.*/

/*reading video data.*/

/*getting next frame by decoding it.*/

/*getting frame data, by reading a r,g,b or y,u,v pixel in (i,j) coordinate*/
etheora_dec_rgb_read(&ec, i, j, &r, &g, &b) (alternative:

/* finishing the process.*/

the functions _yuv_ and _rgb_ works transparently with OC_PF_420,
OC_PF_422 and OC_PF_PF_444, having the libtheora version used support
for them or not.

Etheora is documented here:

Etheora code is here:
http://opensvn.csie.org/ribamar/projects/streaming/src/ {etheora is
etheora.c, etheora.h, etheora-int.h}

Etheora still doesn't have audio/speech support. (Although it can get
video data from videos with audio). And uses internally the old
libtheora API.

I'm still deciding where to host definetively the project, having a
project home page, start making real version control, etc. Also I'm
deciding which license to use (probably the same BSD-like as
libtheora). But I'd already like to hear from you opinions, suggests,
corrections (included english corrections), etc.


More information about the theora-dev mailing list