diff options
author | Andy Wingo <wingo@pobox.com> | 2002-05-29 06:13:26 +0000 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2002-05-29 06:13:26 +0000 |
commit | a8cd8e0c7fb1fa7df59d27823997fc6ca2cbb051 (patch) | |
tree | 3d884b686b15c3dde683789afdf3e1a3675c03c5 /gst-libs/gst/resample/resample.h | |
parent | 86a025734afc75f43e62d61a044fe4fe19054545 (diff) | |
download | gst-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.h | 91 |
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__ */ |