[FFmpeg-soc] [soc]: r2719 - nellyenc/nellymoserenc.c

Michael Niedermayer michaelni at gmx.at
Mon Jul 7 23:13:07 CEST 2008


On Mon, Jul 07, 2008 at 10:55:16PM +0200, Reimar Döffinger wrote:
> Hello,
> On Mon, Jul 07, 2008 at 10:21:38PM +0200, Bartlomiej Wolowiec wrote:
> > On poniedziałek, 7 lipca 2008, Robert Swain wrote:
> > > 2008/7/7 bwolowiec <subversion at mplayerhq.hu>:
> > > > Author: bwolowiec
> > > > Date: Mon Jul  7 16:41:50 2008
> > > > New Revision: 2719
> > > >
> > > > Log:
> > > > use ff_sine_window_init
> > > >
> > > >
> > > > Modified:
> > > >   nellyenc/nellymoserenc.c
> > > >
> > > > Modified: nellyenc/nellymoserenc.c
> > > > =========================================================================
> > > >===== --- nellyenc/nellymoserenc.c    (original)
> > > > +++ nellyenc/nellymoserenc.c    Mon Jul  7 16:41:50 2008
> > > > @@ -116,10 +116,13 @@ static av_cold int encode_init(AVCodecCo
> > > >     dsputil_init(&s->dsp, avctx);
> > > >
> > > >     /* Generate overlap window */
> > > > -    if (!sine_window[0])
> > > > -        for (i=0 ; i<256; i++) {
> > > > -            sine_window[i] = sin((i + 0.5) / 256.0 * M_PI) /8;
> > > > +    if (!sine_window[0]){
> > > > +        ff_sine_window_init(sine_window, 128);
> > > > +        for (i=0; i<128; i++) {
> > > > +            sine_window[i] /= 8.0;
> > >
> > > This isn't thread safe. You must merge the /8 into some other calculation.
> > 
> > Hmm.. yes, you're right. Unfortunately, I don't see now where it can be 
> > calculated. If I don't calculate it in init I will have to calculate it 
> > additionally in every encode_tag, it isn't a good idea.  Maybe it's better to 
> > use previous version and don't use ff_sine_window_init...? or maybe (in my 
> > opinion a bit unnatural) such a solution: 
> > ff_sine_window_init(tmp_sine_window, 128);
> > for (i=0; i<128; i++) {
> >   sine_window[i] = tmp_sine_window[i] / 8.0;
> >   sine_window[255-i] = sine_window[i];
> > }
> 
> Just use your original code on some per-thread buffer (stack or heap
> depending on size) and then memcpy it over.

Please everyone stop scaring me ...

pval = -pow(2, pows[j]/2048);
tmp = s->mdct_out[i*NELLY_BUF_LEN + j] / pval;

above is in the current code, that will happily take a /8 
besides it obviously should be a * not a / pval, / is slow

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Many things microsoft did are stupid, but not doing something just because
microsoft did it is even more stupid. If everything ms did were stupid they
would be bankrupt already.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-soc/attachments/20080707/f44e01c2/attachment.pgp>


More information about the FFmpeg-soc mailing list