Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Opus codec developments

Re: Opus codec developments

From: RafaŽl Carrť <funman_at_videolan.org>
Date: Thu, 26 Jul 2012 20:25:18 +0200

Le 2012-07-26 14:08, Bertrik Sikken a ťcrit :
> Hi all,
>
> Me (bertrik) and freqmod (Frederik M.J. Vestre) have been working on porting
> a new codec to rockbox, the opus codec, see also http://www.opus-codec.org/
> This codec is backed by an IETF draft and I consider it as the next
> evolution beyond vorbis and speex, with specific support for both music and
> speech. It is wrapped in an ogg container, like vorbis and speex.
>
> The current development of the port can be found at:
> http://gerrit.rockbox.org/r/#/c/300/
> freqmod also has a github repo (currently a few days older) at:
> https://github.com/freqmod/rockbox-opus
>
> Stuff that works:
> * Playback on both the simulator and on target
> (tested on the Sandisk Sansa Clip Zip + simulator)
> * Reading metadata (opus metadata is very similar to vorbis metadata)
> * UI shows playback progress in the progress bar
>
> Stuff that still needs work:
> * Memory allocation in the codec main is not fully consistent yet (probably
> leaking some memory), so playing several files in sequence may not work

What do you mean by leak?
codec_free() is a void operation, all memory which is malloc() (or
realloc()) is lost (until next file I hope).

Ideally we should go and replace malloc() by static buffers using worst
case possibilities when possible.

> * Stack usage is still quite high, I've seen about 10k for music and 36k
> for speech on the clip zip, our stacks are currently 10kB by default.

I'd guess some big buffers are allocated on stack (rather than usage
being due to recursion)

> * Applying global gain from the opus audio file is not implemented
> (not sure if replaygain is working)

Fixed (it's part of the codec, not related to replaygain although we
might want to implement replaygain for e.g. vorbis too).

> * Seeking is not implemented yet. We have several codecs now using the ogg
> container, I think it should be possible to share more ogg-stuff between
> these codecs, like seeking.

> * I used the latest release of libogg (1.3), it is a bit wasteful because
> it does a lot of memcpy'ing when processing a stream, also it performs
> CRC checks on the data. Apparently there is a libogg2, which avoids at
> least the memcpy.

> * There are still some warnings emitted from the compiler.

Fixed

>
> Please try it out and help enhancing it further.
>
> Kind regards,
> Bertrik Sikken
>
Received on 2012-07-26


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa