[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