Changeset 3319:a8494d9b89aa in roaraudio for include/libroardsp/libroardsp.h
- Timestamp:
- 02/03/10 15:48:21 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroardsp/libroardsp.h
r3318 r3319 69 69 #define ROARDSP_MAX_FILTERS_PER_CHAIN 8 70 70 71 #define ROARDSP_FILTER_NONE 072 #define ROARDSP_FILTER_AMP 173 #define ROARDSP_FILTER_LOWP 274 #define ROARDSP_FILTER_HIGHP 375 #define ROARDSP_FILTER_MODULATE 476 #define ROARDSP_FILTER_QUANTIFY 577 #define ROARDSP_FILTER_CLIP 678 #define ROARDSP_FILTER_ADD 779 #define ROARDSP_FILTER_DOWNMIX 880 #define ROARDSP_FILTER_DCBLOCK 981 #define ROARDSP_FILTER_SWAP 1082 #define ROARDSP_FILTER_SPEEX_PREP 1183 #define ROARDSP_FILTER_AGC 1284 85 // filter CTLs:86 87 #define ROARDSP_FCTL_FREQ 1 /* float */88 #define ROARDSP_FCTL_TIME 289 #define ROARDSP_FCTL_MUL 3 /* int32_t */90 #define ROARDSP_FCTL_DIV 4 /* int32_t */91 #define ROARDSP_FCTL_N 5 /* int32_t */92 #define ROARDSP_FCTL_LIMIT 6 /* int32_t */93 #define ROARDSP_FCTL_PHASE 794 #define ROARDSP_FCTL_Q 8 /* int32_t */95 #define ROARDSP_FCTL_MODE 9 /* int32_t */96 #define ROARDSP_FCTL_PACKET_SIZE 10 /* size_t */97 98 // consts for filter flags:99 #define ROARDSP_FFLAG_NONE 0x0000100 #define ROARDSP_FFLAG_FREE 0x0001101 102 // consts for filter(chain) reset:103 #define ROARDSP_RESET_NONE 0104 #define ROARDSP_RESET_FULL 1105 #define ROARDSP_RESET_STATE 2106 107 // filter specific constants:108 #define ROARDSP_DOWNMIX_LEFT 1109 #define ROARDSP_DOWNMIX_RIGHT 2110 #define ROARDSP_DOWNMIX_ARITHMETIC 3111 #define ROARDSP_DOWNMIX_RMS 4112 113 #define ROARDSP_DCBLOCK_NUMBLOCKS 100114 115 116 #define ROARDSP_SPEEX_PREP_ON 0x0001117 #define ROARDSP_SPEEX_PREP_OFF 0x0002118 #define ROARDSP_SPEEX_PREP_MASK (ROARDSP_SPEEX_PREP_ON|ROARDSP_SPEEX_PREP_OFF)119 120 // Config Bit Vector121 #define ROARDSP_SPEEX_PREP_CBV(opt,sw) ((sw)<<((opt)*2))122 #define ROARDSP_SPEEX_PREP_CTB(opt,val) (((val) & ROARDSP_SPEEX_PREP_CBV((opt),ROARDSP_SPEEX_PREP_MASK)) >> ((opt)*2))123 124 #define ROARDSP_SPEEX_PREP_DENOISE 0125 #define ROARDSP_SPEEX_PREP_AGC 1126 #define ROARDSP_SPEEX_PREP_VAD 2127 128 #define ROARDSP_SPEEX_PREP_DENOISE_ON ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_DENOISE, ROARDSP_SPEEX_PREP_ON)129 #define ROARDSP_SPEEX_PREP_DENOISE_OFF ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_DENOISE, ROARDSP_SPEEX_PREP_OFF)130 #define ROARDSP_SPEEX_PREP_AGC_ON ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_AGC, ROARDSP_SPEEX_PREP_ON)131 #define ROARDSP_SPEEX_PREP_AGC_OFF ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_AGC, ROARDSP_SPEEX_PREP_OFF)132 #define ROARDSP_SPEEX_PREP_VAD_ON ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_VAD, ROARDSP_SPEEX_PREP_ON)133 #define ROARDSP_SPEEX_PREP_VAD_OFF ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_VAD, ROARDSP_SPEEX_PREP_OFF)134 135 136 71 // types: 137 138 struct roardsp_filter {139 int channels;140 int bits;141 int rate;142 void * inst;143 uint_least16_t flags;144 int (*calc )(struct roardsp_filter * filter, void * data, size_t samples);145 int (*uninit)(struct roardsp_filter * filter);146 int (*ctl )(struct roardsp_filter * filter, int cmd, void * data);147 int (*reset )(struct roardsp_filter * filter, int what);148 };149 72 150 73 struct roardsp_filterchain { … … 153 76 }; 154 77 155 #ifdef ROAR_HAVE_LIBM156 struct roardsp_lowp {157 uint32_t freq; // in mHz (0Hz..4MHz)158 uint16_t a, b;159 int32_t old[ROAR_MAX_CHANNELS];160 };161 162 struct roardsp_highp {163 uint32_t freq; // in mHz (0Hz..4MHz)164 int32_t a, b, c;165 int32_t oldout[ROAR_MAX_CHANNELS];166 int32_t oldin[ROAR_MAX_CHANNELS];167 };168 #endif169 170 struct roardsp_amp {171 int32_t mul;172 int32_t div;173 };174 175 struct roardsp_dcblock {176 int cur;177 int32_t dc[ROARDSP_DCBLOCK_NUMBLOCKS];178 };179 180 struct roardsp_swap {181 int map[ROAR_MAX_CHANNELS];182 };183 184 struct roardsp_agc {185 struct roardsp_filter * amp;186 uint32_t target_amp;187 };188 189 struct roardsp_speex_prep {190 #ifdef _SPEEX_TYPES_H191 SpeexPreprocessState *preprocess;192 int frame_size;193 #else194 char dummy[8];195 #endif196 };197 198 78 // funcs: 199 int roardsp_filter_str2id(char * str);200 char * roardsp_filter_id2str(int id);201 int roardsp_filter_new (struct roardsp_filter ** filter, struct roar_stream * stream, int id);202 #define roardsp_filter_free(x) roardsp_filter_uninit((x))203 int roardsp_filter_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);204 int roardsp_filter_uninit(struct roardsp_filter * filter);205 int roardsp_filter_calc (struct roardsp_filter * filter, void * data, size_t len);206 int roardsp_filter_ctl (struct roardsp_filter * filter, int cmd, void * data);207 int roardsp_filter_reset (struct roardsp_filter * filter, int what);208 209 79 int roardsp_fchain_init (struct roardsp_filterchain * chain); 210 80 int roardsp_fchain_uninit(struct roardsp_filterchain * chain); … … 213 83 int roardsp_fchain_reset (struct roardsp_filterchain * chain, int what); 214 84 int roardsp_fchain_num (struct roardsp_filterchain * chain); 215 216 // filter:217 218 #ifdef ROAR_HAVE_LIBM219 int roardsp_lowp_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);220 int roardsp_lowp_uninit(struct roardsp_filter * filter);221 int roardsp_lowp_calc16(struct roardsp_filter * filter, void * data, size_t samples);222 int roardsp_lowp_ctl (struct roardsp_filter * filter, int cmd, void * data);223 int roardsp_lowp_reset (struct roardsp_filter * filter, int what);224 225 int roardsp_highp_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);226 int roardsp_highp_uninit(struct roardsp_filter * filter);227 int roardsp_highp_calc16(struct roardsp_filter * filter, void * data, size_t samples);228 int roardsp_highp_ctl (struct roardsp_filter * filter, int cmd, void * data);229 int roardsp_highp_reset (struct roardsp_filter * filter, int what);230 #endif231 232 int roardsp_amp_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);233 int roardsp_amp_uninit(struct roardsp_filter * filter);234 int roardsp_amp_calc16(struct roardsp_filter * filter, void * data, size_t samples);235 int roardsp_amp_calc8 (struct roardsp_filter * filter, void * data, size_t samples);236 int roardsp_amp_ctl (struct roardsp_filter * filter, int cmd, void * data);237 int roardsp_amp_reset (struct roardsp_filter * filter, int what);238 239 int roardsp_add_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);240 int roardsp_add_calc16(struct roardsp_filter * filter, void * data, size_t samples);241 int roardsp_add_reset (struct roardsp_filter * filter, int what);242 243 int roardsp_quantify_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);244 int roardsp_quantify_uninit(struct roardsp_filter * filter);245 int roardsp_quantify_calc16(struct roardsp_filter * filter, void * data, size_t samples);246 int roardsp_quantify_ctl (struct roardsp_filter * filter, int cmd, void * data);247 int roardsp_quantify_reset (struct roardsp_filter * filter, int what);248 249 int roardsp_clip_calc16(struct roardsp_filter * filter, void * data, size_t samples);250 int roardsp_clip_ctl (struct roardsp_filter * filter, int cmd, void * data);251 int roardsp_clip_reset (struct roardsp_filter * filter, int what);252 253 int roardsp_downmix_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);254 int roardsp_downmix_calc162(struct roardsp_filter * filter, void * data, size_t samples);255 int roardsp_downmix_ctl (struct roardsp_filter * filter, int cmd, void * data);256 int roardsp_downmix_reset (struct roardsp_filter * filter, int what);257 258 int roardsp_dcblock_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);259 int roardsp_dcblock_uninit (struct roardsp_filter * filter);260 int roardsp_dcblock_calc16 (struct roardsp_filter * filter, void * data, size_t samples);261 int roardsp_dcblock_reset (struct roardsp_filter * filter, int what);262 263 int roardsp_swap_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);264 int roardsp_swap_uninit (struct roardsp_filter * filter);265 int roardsp_swap_calc162(struct roardsp_filter * filter, void * data, size_t samples);266 int roardsp_swap_ctl (struct roardsp_filter * filter, int cmd, void * data);267 int roardsp_swap_reset (struct roardsp_filter * filter, int what);268 269 int roardsp_agc_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);270 int roardsp_agc_uninit (struct roardsp_filter * filter);271 int roardsp_agc_ctl (struct roardsp_filter * filter, int cmd, void * data);272 int roardsp_agc_reset (struct roardsp_filter * filter, int what);273 274 #ifdef _SPEEX_TYPES_H275 #define ROAR_HAVE_SPEEX_FILTER276 int roardsp_speex_prep_init (struct roardsp_filter * filter, struct roar_stream * stream, int id);277 int roardsp_speex_prep_uninit (struct roardsp_filter * filter);278 int roardsp_speex_prep_calc161(struct roardsp_filter * filter, void * data, size_t samples);279 int roardsp_speex_prep_ctl (struct roardsp_filter * filter, int cmd, void * data);280 int roardsp_speex_prep_reset (struct roardsp_filter * filter, int what);281 #endif282 85 283 86 // codecs:
Note: See TracChangeset
for help on using the changeset viewer.