From 7fbe455e5e9cc0f16e03495f4842621b95c98b3a Mon Sep 17 00:00:00 2001 From: corey Date: Wed, 7 Jun 2006 00:05:50 +0000 Subject: sinesupress --> sinesuppress rename: looks like I need to 'svn commit af_sinesupress.c' (the old file). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18613 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libaf/af_sinesupress.c | 178 ------------------------------------------------- 1 file changed, 178 deletions(-) delete mode 100644 libaf/af_sinesupress.c (limited to 'libaf') diff --git a/libaf/af_sinesupress.c b/libaf/af_sinesupress.c deleted file mode 100644 index 71306dbc62..0000000000 --- a/libaf/af_sinesupress.c +++ /dev/null @@ -1,178 +0,0 @@ -/*============================================================================= -// -// This software has been released under the terms of the GNU General Public -// license. See http://www.gnu.org/copyleft/gpl.html for details. -// -// Copyright 2006 Michael Niedermayer -// Copyright 2004 Alex Beregszaszi & Pierre Lombard (original af_extrastereo.c upon which this is based) -// -//============================================================================= -*/ - -#include -#include -#include - -#include -#include -#include -#include - -#include "af.h" - -// Data for specific instances of this filter -typedef struct af_sinesupress_s -{ - double freq; - double decay; - double real; - double imag; - double ref; - double pos; -}af_sinesupress_t; - -static af_data_t* play_s16(struct af_instance_s* af, af_data_t* data); -static af_data_t* play_float(struct af_instance_s* af, af_data_t* data); - -// Initialization and runtime control -static int control(struct af_instance_s* af, int cmd, void* arg) -{ - af_sinesupress_t* s = (af_sinesupress_t*)af->setup; - - switch(cmd){ - case AF_CONTROL_REINIT:{ - // Sanity check - if(!arg) return AF_ERROR; - - af->data->rate = ((af_data_t*)arg)->rate; - af->data->nch = 1; -#if 0 - if (((af_data_t*)arg)->format == AF_FORMAT_FLOAT_NE) - { - af->data->format = AF_FORMAT_FLOAT_NE; - af->data->bps = 4; - af->play = play_float; - }// else -#endif - { - af->data->format = AF_FORMAT_S16_NE; - af->data->bps = 2; - af->play = play_s16; - } - - return af_test_output(af,(af_data_t*)arg); - } - case AF_CONTROL_COMMAND_LINE:{ - float f1,f2; - sscanf((char*)arg,"%f:%f", &f1,&f2); - s->freq = f1; - s->decay = f2; - return AF_OK; - } - case AF_CONTROL_SS_FREQ | AF_CONTROL_SET: - s->freq = *(float*)arg; - return AF_OK; - case AF_CONTROL_SS_FREQ | AF_CONTROL_GET: - *(float*)arg = s->freq; - return AF_OK; - case AF_CONTROL_SS_DECAY | AF_CONTROL_SET: - s->decay = *(float*)arg; - return AF_OK; - case AF_CONTROL_SS_DECAY | AF_CONTROL_GET: - *(float*)arg = s->decay; - return AF_OK; - } - return AF_UNKNOWN; -} - -// Deallocate memory -static void uninit(struct af_instance_s* af) -{ - if(af->data) - free(af->data); - if(af->setup) - free(af->setup); -} - -// Filter data through filter -static af_data_t* play_s16(struct af_instance_s* af, af_data_t* data) -{ - af_sinesupress_t *s = af->setup; - register int i = 0; - int16_t *a = (int16_t*)data->audio; // Audio data - int len = data->len/2; // Number of samples - int avg, l, r; - - for (i = 0; i < len; i++) - { - double co= cos(s->pos); - double si= sin(s->pos); - - s->real += co * a[i]; - s->imag += si * a[i]; - s->ref += co * co; - - a[i] -= (s->real * co + s->imag * si) / s->ref; - - s->real -= s->real * s->decay; - s->imag -= s->imag * s->decay; - s->ref -= s->ref * s->decay; - - s->pos += 2 * M_PI * s->freq / data->rate; - } - - af_msg(AF_MSG_VERBOSE,"[sinesupress] f:%8.2f: amp:%8.2f\n", s->freq, sqrt(s->real*s->real + s->imag*s->imag) / s->ref); - - return data; -} - -#if 0 -static af_data_t* play_float(struct af_instance_s* af, af_data_t* data) -{ - af_sinesupress_t *s = af->setup; - register int i = 0; - float *a = (float*)data->audio; // Audio data - int len = data->len/4; // Number of samples - float avg, l, r; - - for (i = 0; i < len; i+=2) - { - avg = (a[i] + a[i + 1]) / 2; - -/* l = avg + (s->mul * (a[i] - avg)); - r = avg + (s->mul * (a[i + 1] - avg));*/ - - a[i] = af_softclip(l); - a[i + 1] = af_softclip(r); - } - - return data; -} -#endif - -// Allocate memory and set function pointers -static int open(af_instance_t* af){ - af->control=control; - af->uninit=uninit; - af->play=play_s16; - af->mul.n=1; - af->mul.d=1; - af->data=calloc(1,sizeof(af_data_t)); - af->setup=calloc(1,sizeof(af_sinesupress_t)); - if(af->data == NULL || af->setup == NULL) - return AF_ERROR; - - ((af_sinesupress_t*)af->setup)->freq = 50.0; - ((af_sinesupress_t*)af->setup)->decay = 0.0001; - return AF_OK; -} - -// Description of this filter -af_info_t af_info_sinesupress = { - "Sine Supress", - "sinesupress", - "Michael Niedermayer", - "", - 0, - open -}; -- cgit v1.2.3