Original commit message from CVS:
* gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
more overwriting protection due to modifying channels one by one
instead of all at once
+2004-11-28 Benjamin Otte <otte@gnome.org>
+
+ * gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix):
+ more overwriting protection due to modifying channels one by one
+ instead of all at once
+
2004-11-28 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/audioconvert/gstchannelmix.c:
#endif
#include <math.h>
+#include <string.h>
#include <gst/audio/multichannel.h>
#include "gstchannelmix.h"
{
gint in, out, n;
gint64 res;
+ gint32 tmp[this->srccaps.channels];
gboolean backwards = this->srccaps.channels > this->sinkcaps.channels;
/* FIXME: use liboil here? */
res = G_MININT32;
else if (res > G_MAXINT32)
res = G_MAXINT32;
-
- /* store */
- out_data[n * this->srccaps.channels + out] = res;
+ tmp[out] = res;
}
+ memcpy (&out_data[n * this->srccaps.channels], tmp,
+ sizeof (gint32) * this->srccaps.channels);
}
}