[FFmpeg-devel] [PATCH] wmadec.c: SIMD optimization using float_to_int16_interleave
Michael Niedermayer
michaelni
Tue Mar 9 19:44:34 CET 2010
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?
[..]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- 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/20100309/90a2cf57/attachment.pgp>
More information about the ffmpeg-devel
mailing list