[FFmpeg-devel] [PATCH] wmadec.c: SIMD optimization using float_to_int16_interleave

Michael Niedermayer michaelni
Wed Mar 10 00:24:37 CET 2010


On Tue, Mar 09, 2010 at 06:48:21PM +0000, M?ns Rullg?rd wrote:
> Michael Niedermayer <michaelni at gmx.at> writes:
> 
> > On Wed, Mar 10, 2010 at 12:45:03AM +0800, Zhou Zongyi wrote:
> >> > cosmetics
> >> OK. I removed indent.
> >> 
> >> > looks odd
> >> It seems my mail client is broken. Fixed.
> >> 
> >> Updated patch:
> >> 
> >> Index: libavcodec/wmadec.c
> >> ===================================================================
> >> --- libavcodec/wmadec.c (revision 22281)
> >> +++ libavcodec/wmadec.c (working copy)
> >> @@ -790,6 +790,7 @@
> >>      /* convert frame to integer */
> >>      n = s->frame_len;
> >>      incr = s->nb_channels;
> >> +    if (s->dsp.float_to_int16_interleave == ff_float_to_int16_interleave_c) {
> >>      for(ch = 0; ch < s->nb_channels; ch++) {
> >>          ptr = samples + ch;
> >>          iptr = s->frame_out[ch];
> >> @@ -802,6 +803,16 @@
> >>          memmove(&s->frame_out[ch][0], &s->frame_out[ch][s->frame_len],
> >>                  s->frame_len * sizeof(float));
> >>      }
> >> +    } else {
> >> +        float *output[MAX_CHANNELS];
> >> +        for (ch = 0; ch < MAX_CHANNELS; ch++)
> >> +            output[ch] = s->frame_out[ch];
> >> +        s->dsp.float_to_int16_interleave(samples, (const float **)output, n, incr);
> >> +        for(ch = 0; ch < incr; ch++) {
> >> +            /* prepare for next block */
> >> +            memmove(&s->frame_out[ch][0], &s->frame_out[ch][n], n * sizeof(float));
> >> +        }
> >> +    }
> >
> > why is this code not also used for the ff_float_to_int16_interleave_c case?
> 
> The C code requires a different bias and scale.  You should know that.

right, i do remember now
no objections to the patch

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Rewriting code that is poorly written but fully understood is good.
Rewriting code that one doesnt understand is a sign that one is less smart
then the original author, trying to rewrite it will not make it better.
-------------- 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-devel/attachments/20100310/ba4acd05/attachment.pgp>



More information about the ffmpeg-devel mailing list