mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 04:00:37 +00:00
gst-libs/gst/resample/resample.c: Remove use of static temporary buffer. This code was obviously not supposed to las...
Original commit message from CVS: * gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16), (gst_resample_sinc_ft_float): Remove use of static temporary buffer. This code was obviously not supposed to last long, but it's stuck in our ABI, so it required a little hack to make it ABI-compatible. Fixes #142585. * gst-libs/gst/resample/resample.h: same.
This commit is contained in:
parent
c95dd78c2b
commit
0ab84afae6
3 changed files with 38 additions and 5 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2004-05-18 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
|
* gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16),
|
||||||
|
(gst_resample_sinc_ft_float): Remove use of static temporary
|
||||||
|
buffer. This code was obviously not supposed to last long, but
|
||||||
|
it's stuck in our ABI, so it required a little hack to make it
|
||||||
|
ABI-compatible. Fixes #142585.
|
||||||
|
* gst-libs/gst/resample/resample.h: same.
|
||||||
|
|
||||||
2004-05-18 David Schleef <ds@schleef.org>
|
2004-05-18 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
* configure.ac: Add sunaudio
|
* configure.ac: Add sunaudio
|
||||||
|
|
|
@ -252,7 +252,8 @@ gst_resample_nearest_s16 (gst_resample_t * r)
|
||||||
SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
|
SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2);
|
SCALE_LOOP (o_ptr[0] = i_ptr[0];
|
||||||
|
o_ptr[1] = i_ptr[1], 2);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -472,8 +473,6 @@ gst_resample_sinc_s16 (gst_resample_t * r)
|
||||||
|
|
||||||
static functable_t *ft;
|
static functable_t *ft;
|
||||||
|
|
||||||
double out_tmp[10000];
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gst_resample_sinc_ft_s16 (gst_resample_t * r)
|
gst_resample_sinc_ft_s16 (gst_resample_t * r)
|
||||||
{
|
{
|
||||||
|
@ -493,6 +492,14 @@ gst_resample_sinc_ft_s16 (gst_resample_t * r)
|
||||||
double x, d;
|
double x, d;
|
||||||
double scale;
|
double scale;
|
||||||
int n = 4;
|
int n = 4;
|
||||||
|
double *out_tmp;
|
||||||
|
|
||||||
|
if (r->hack_union.s.out_tmp_len < r->o_samples) {
|
||||||
|
r->hack_union.s.out_tmp = realloc (r->hack_union.s.out_tmp,
|
||||||
|
r->o_samples * 2 * sizeof (double));
|
||||||
|
r->hack_union.s.out_tmp_len = r->o_samples;
|
||||||
|
}
|
||||||
|
out_tmp = r->hack_union.s.out_tmp;
|
||||||
|
|
||||||
scale = r->i_inc; /* cutoff at 22050 */
|
scale = r->i_inc; /* cutoff at 22050 */
|
||||||
/*scale = 1.0; // cutoff at 24000 */
|
/*scale = 1.0; // cutoff at 24000 */
|
||||||
|
@ -605,7 +612,8 @@ gst_resample_nearest_float (gst_resample_t * r)
|
||||||
SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
|
SCALE_LOOP (o_ptr[0] = i_ptr[0], 1);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2);
|
SCALE_LOOP (o_ptr[0] = i_ptr[0];
|
||||||
|
o_ptr[1] = i_ptr[1], 2);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -805,6 +813,14 @@ gst_resample_sinc_ft_float (gst_resample_t * r)
|
||||||
double x, d;
|
double x, d;
|
||||||
double scale;
|
double scale;
|
||||||
int n = 4;
|
int n = 4;
|
||||||
|
double *out_tmp;
|
||||||
|
|
||||||
|
if (r->hack_union.s.out_tmp_len < r->o_samples) {
|
||||||
|
r->hack_union.s.out_tmp = realloc (r->hack_union.s.out_tmp,
|
||||||
|
r->o_samples * 2 * sizeof (double));
|
||||||
|
r->hack_union.s.out_tmp_len = r->o_samples;
|
||||||
|
}
|
||||||
|
out_tmp = r->hack_union.s.out_tmp;
|
||||||
|
|
||||||
scale = r->i_inc; /* cutoff at 22050 */
|
scale = r->i_inc; /* cutoff at 22050 */
|
||||||
/*scale = 1.0; // cutoff at 24000 */
|
/*scale = 1.0; // cutoff at 24000 */
|
||||||
|
|
|
@ -78,12 +78,20 @@ struct gst_resample_s {
|
||||||
|
|
||||||
void *i_buf, *o_buf;
|
void *i_buf, *o_buf;
|
||||||
|
|
||||||
double acc[10];
|
double acc[2];
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
double *out_tmp;
|
||||||
|
int out_tmp_len;
|
||||||
|
} s;
|
||||||
|
double padding[8];
|
||||||
|
} hack_union;
|
||||||
|
|
||||||
/* methods */
|
/* methods */
|
||||||
void (*scale)(gst_resample_t *r);
|
void (*scale)(gst_resample_t *r);
|
||||||
|
|
||||||
double ack;
|
double ack;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void gst_resample_init(gst_resample_t *r);
|
void gst_resample_init(gst_resample_t *r);
|
||||||
|
|
Loading…
Reference in a new issue