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: Fri, 27 Jul 2012 18:16:56 +0200

Le 2012-07-27 15:24, Bertrik Sikken a ťcrit :
> On 26-7-2012 8:25, RafaŽl Carrť wrote:
>> Le 2012-07-26 14:08, Bertrik Sikken a ťcrit :

>> Ideally we should go and replace malloc() by static buffers using worst
>> case possibilities when possible.
>
> The mallocs still being done, are done only at initialisation time,
> there is no malloc/free during playback, so using malloc for these
> is fine IMO. We can initialise the malloc subsystem (e.g. through
> a call to codec_init()) for each file we play.
> I think this should work and isn't so bad; conversion to static buffers
> probably requires changes (e.g. in ogg and opus) that probably make it
> harder to sync with upstream later.

In this case, keeping malloc() is the right thing to do.

I had seen some dangerous code, but I realise it is part of a test
program (opus_compare.c) so it doesn't affect us.

By the way do we want to remove unused files from git?
It would make grepping easier, but also syncing with future libopus
updates a bit harder.

A compromise would be to mention these unused files in README.rockbox

>>> * 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)
>
> Gregory Maxwell from opus was looking into this a bit and I think he
> identified the largest stack users. I guess this will end up being
> a change in opus itself.

OK let's see what he says.

>>> * 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).
>
> Thanks.

No problem, it turned out to be a oneliner ;)

> (Replaygain for vorbis/upus doesn't look that complicated really, BTW).

Yes it should be just a matter of reading the tags and calling the right
rockbox function, e.g. like parserva2() in metadata/i3dtags.c
Received on 2012-07-27


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