[FFmpeg-soc] [soc]: r2719 - nellyenc/nellymoserenc.c
Reimar Döffinger
Reimar.Doeffinger at stud.uni-karlsruhe.de
Mon Jul 7 22:55:16 CEST 2008
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.
Greetings,
Reimar Döffinger
More information about the FFmpeg-soc
mailing list