summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/resample/resample.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2002-05-29 06:13:26 +0000
committerAndy Wingo <wingo@pobox.com>2002-05-29 06:13:26 +0000
commita8cd8e0c7fb1fa7df59d27823997fc6ca2cbb051 (patch)
tree3d884b686b15c3dde683789afdf3e1a3675c03c5 /gst-libs/gst/resample/resample.h
parent86a025734afc75f43e62d61a044fe4fe19054545 (diff)
downloadgst-plugins-bad-a8cd8e0c7fb1fa7df59d27823997fc6ca2cbb051.tar.gz
gst-plugins-bad-a8cd8e0c7fb1fa7df59d27823997fc6ca2cbb051.tar.bz2
gst-plugins-bad-a8cd8e0c7fb1fa7df59d27823997fc6ca2cbb051.zip
add float support to resampling lib clean up header file
Original commit message from CVS: * add float support to resampling lib * clean up header file
Diffstat (limited to 'gst-libs/gst/resample/resample.h')
-rw-r--r--gst-libs/gst/resample/resample.h91
1 files changed, 14 insertions, 77 deletions
diff --git a/gst-libs/gst/resample/resample.h b/gst-libs/gst/resample/resample.h
index 1cc36edd..ac6c1547 100644
--- a/gst-libs/gst/resample/resample.h
+++ b/gst-libs/gst/resample/resample.h
@@ -21,16 +21,27 @@
#ifndef __RESAMPLE_H__
#define __RESAMPLE_H__
-#include <config.h>
+typedef enum {
+ RESAMPLE_NEAREST = 0,
+ RESAMPLE_BILINEAR,
+ RESAMPLE_SINC_SLOW,
+ RESAMPLE_SINC,
+} resample_method;
+
+typedef enum {
+ RESAMPLE_S16 = 0,
+ RESAMPLE_FLOAT
+} resample_format;
typedef struct resample_s resample_t;
struct resample_s {
/* parameters */
- int method;
+ resample_method method;
int channels;
int verbose;
+ resample_format format;
int filter_length;
@@ -75,85 +86,11 @@ struct resample_s {
double ack;
};
-enum{
- RESAMPLE_NEAREST = 0,
- RESAMPLE_BILINEAR,
- RESAMPLE_SINC_SLOW,
- RESAMPLE_SINC,
-};
-
void resample_init(resample_t *r);
+
void resample_reinit(resample_t *r);
void resample_scale(resample_t *r, void *i_buf, unsigned int size);
-void resample_nearest(resample_t *r);
-void resample_bilinear(resample_t *r);
-void resample_sinc(resample_t *r);
-void resample_sinc_slow(resample_t *r);
-
-
-typedef struct functable_s functable_t;
-struct functable_s {
- double start;
- double offset;
- int len;
-
- double invoffset;
-
- double scale;
- double scale2;
-
- double (*func_x)(void *,double x);
- double (*func_dx)(void *,double x);
-
- double (*func2_x)(void *,double x);
- double (*func2_dx)(void *,double x);
-
- double *fx;
- double *fdx;
-
- void *priv;
-};
-
-void functable_init(functable_t *t);
-double functable_eval(functable_t *t,double x);
-
-double functable_fir(functable_t *t,double x0,int n,double *data,int len);
-void functable_fir2(functable_t *t,double *r0, double *r1, double x0,
- int n,double *data,int len);
-
-double functable_sinc(void *p, double x);
-double functable_dsinc(void *p, double x);
-double functable_window_std(void *p, double x);
-double functable_window_dstd(void *p, double x);
-double functable_window_boxcar(void *p, double x);
-double functable_window_dboxcar(void *p, double x);
-
-/* math lib stuff */
-
-void conv_double_short_table(double *dest, short *src, int n);
-void conv_double_short_unroll(double *dest, short *src, int n);
-void conv_double_short_ref(double *dest, short *src, int n);
-#ifdef HAVE_CPU_PPC
-void conv_double_short_altivec(double *dest, short *src, int n);
-#endif
-
-void conv_short_double_ref(short *dest, double *src, int n);
-#ifdef HAVE_CPU_PPC
-void conv_short_double_ppcasm(short *dest, double *src, int n);
-#endif
-
-#ifdef HAVE_CPU_PPC
-#define conv_double_short conv_double_short_table
-#define conv_short_double conv_short_double_ppcasm
-#else
-#define conv_double_short conv_double_short_ref
-#define conv_short_double conv_short_double_ref
-#endif
-
-void conv_double_short_dstr(double *dest, short *src, int n, int dstr);
-void conv_short_double_sstr(short *dest, double *src, int n, int dstr);
-
#endif /* __RESAMPLE_H__ */