gst/audioconvert/gstchannelmix.c: more overwriting protection due to modifying channels one by one instead of all at ...

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
This commit is contained in:
Benjamin Otte 2004-11-28 20:41:23 +00:00
parent 836ea71ea1
commit 05103c18ca
2 changed files with 11 additions and 3 deletions

View file

@ -1,3 +1,9 @@
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:

View file

@ -24,6 +24,7 @@
#endif
#include <math.h>
#include <string.h>
#include <gst/audio/multichannel.h>
#include "gstchannelmix.h"
@ -532,6 +533,7 @@ gst_audio_convert_mix (GstAudioConvert * this,
{
gint in, out, n;
gint64 res;
gint32 tmp[this->srccaps.channels];
gboolean backwards = this->srccaps.channels > this->sinkcaps.channels;
/* FIXME: use liboil here? */
@ -550,9 +552,9 @@ gst_audio_convert_mix (GstAudioConvert * this,
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);
}
}