dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: how to merge fixed point wma decoder to libav 0.7.6

Re: how to merge fixed point wma decoder to libav 0.7.6

From: Diaz Soho <>
Date: Wed, 3 Sep 2014 10:11:49 +0800

Thanks a lot for your input!!

It is necessary for me about fixed point wma decoder since my cpu does not
include fpu and cpu clock is not fast enough.
so, you mean the decode flow is from asf_read_packet(), that is read a wma
but in my case, I have to re-write to do PACKET INPUT, then it will
call wma_decode_superframe_init
and wma_decode_superframe.

And in advance,

how about the struct
asf_waveformatex_t wfx;
in rockbox use that for decode, but in general ffmpeg does not include the
that also used for wma_decode_init,
is it any method to do wrapper for the struct?

2014-09-03 1:45 GMT+08:00 Mike <>:

> There is no wrapper around ffmpeg for rockbox, the original ffmpeg code
> has been rewritten to process data one frame at a time instead of one
> superframe at a time like ffmpeg did. This was a problem on lower speed
> devices because superframes could be very large, resulting in audio drop
> outs. Actually, a large part of the original codec has been rewritten to
> work better on low speed devices rather than PCs.
> Do you actually need the ffmpeg interface? I would probably not try to
> use it here as it is not well suited to what you want to do unless your
> embedded device is quite fast. Instead I would take a look at wma.c, which
> does a very simple loop calling asf_read_packet (to read an ASF packet),
> then wma_decode_superframe_init to prepare a superframe for decoding,
> and finally a loop of wma_decode_superframe_frame that returns decoded
> PCM samples.
> If you do need an ffmpeg interface, you could probably write a wrapper
> around these functions.
> Mike
> ------------------------------
> Date: Wed, 3 Sep 2014 00:30:43 +0800
> Subject: Re: how to merge fixed point wma decoder to libav 0.7.6
> From:
> To:
> but the usage of library seems different with original ffmpeg libav,
> for example:
> in rockbox, there is wma_decode_superframe_init,
> but
> in general ffmpeg libav does not include wma_decode_superframe_init,
> so,
> I do not got the point how to remove the wrapper that you add for rockbox
> could you give some guide?
> 2014-09-03 0:26 GMT+08:00 Mike <>:
> The other option of course is to use our codecs directly. You can compile
> the codeclib separately from Rockbox and call it directly from another
> program or using the command line. We provide most of the same formats as
> ffmpeg but all integer.
> ------------------------------
> From:
> To:
> Subject: RE: how to merge fixed point wma decoder to libav 0.7.6
> Date: Tue, 2 Sep 2014 09:17:13 -0700
> I talked to the ffmpeg people about it almost a decade ago. Since then
> floating point hardware has become very common and the need for fixed point
> diminished. The closest thing I can think of would be vlc for android
> which uses an early version of our fixed point decoder that is still closer
> to ffmpeg.
> Mike
> ------------------------------
> Date: Tue, 2 Sep 2014 17:32:00 +0800
> Subject: how to merge fixed point wma decoder to libav 0.7.6
> From:
> To:
> Hi All,
> Is there anyone have idea about how to merge fixed point wma decoder to
> libav 0.7.6?
> because my cpu does not include fpu, when use the wma decoder in libav ,
> it take a lot of cpu time.
> Or is anyone have merge fixed point wma decoder to libav?
> Thanks for any input!!
Received on 2014-09-03

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy