diff options
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins.args | 22 | ||||
-rw-r--r-- | docs/plugins/gst-plugins-bad-plugins.signals | 102 | ||||
-rw-r--r-- | docs/plugins/inspect/plugin-gstrtpmanager.xml | 2 | ||||
-rw-r--r-- | gst/filter/gstbpwsinc.c | 141 | ||||
-rw-r--r-- | gst/filter/gstbpwsinc.h | 2 | ||||
-rw-r--r-- | gst/filter/gstlpwsinc.c | 143 | ||||
-rw-r--r-- | gst/filter/gstlpwsinc.h | 2 | ||||
-rw-r--r-- | tests/check/elements/lpwsinc.c | 10 |
9 files changed, 255 insertions, 190 deletions
@@ -1,3 +1,24 @@ +2007-08-17 Sebastian Dröge <slomo@circular-chaos.org> + + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), + (bpwsinc_set_property), (bpwsinc_get_property): + * gst/filter/gstbpwsinc.h: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property), + (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + * tests/check/elements/lpwsinc.c: (GST_START_TEST): + Use generator macros for the process functions for the different + sample types, add lower upper boundaries for the GObject properties + so automatically generated UIs can use sliders and change frequency + properties to floats to save a bit of memory, even ints would in + theory be enough. Also rename frequency to cutoff for consistency + reasons. + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + Regenerated for the above changes. + 2007-08-17 Stefan Kost <ensonic@users.sf.net> * ext/amrwb/gstamrwbparse.c: diff --git a/docs/plugins/gst-plugins-bad-plugins.args b/docs/plugins/gst-plugins-bad-plugins.args index aaa99cbd..24b1ed0f 100644 --- a/docs/plugins/gst-plugins-bad-plugins.args +++ b/docs/plugins/gst-plugins-bad-plugins.args @@ -1501,7 +1501,7 @@ <ARG> <NAME>GstBPWSinc::length</NAME> <TYPE>gint</TYPE> -<RANGE>>= 3</RANGE> +<RANGE>[3,50000]</RANGE> <FLAGS>rw</FLAGS> <NICK>Length</NICK> <BLURB>Filter kernel length, will be rounded to the next odd number.</BLURB> @@ -1510,8 +1510,8 @@ <ARG> <NAME>GstBPWSinc::lower-frequency</NAME> -<TYPE>gdouble</TYPE> -<RANGE>>= 0</RANGE> +<TYPE>gfloat</TYPE> +<RANGE>[0,100000]</RANGE> <FLAGS>rw</FLAGS> <NICK>Lower Frequency</NICK> <BLURB>Cut-off lower frequency (Hz).</BLURB> @@ -1520,8 +1520,8 @@ <ARG> <NAME>GstBPWSinc::upper-frequency</NAME> -<TYPE>gdouble</TYPE> -<RANGE>>= 0</RANGE> +<TYPE>gfloat</TYPE> +<RANGE>[0,100000]</RANGE> <FLAGS>rw</FLAGS> <NICK>Upper Frequency</NICK> <BLURB>Cut-off upper frequency (Hz).</BLURB> @@ -1561,7 +1561,7 @@ <ARG> <NAME>GstLPWSinc::length</NAME> <TYPE>gint</TYPE> -<RANGE>>= 3</RANGE> +<RANGE>[3,50000]</RANGE> <FLAGS>rw</FLAGS> <NICK>Length</NICK> <BLURB>Filter kernel length, will be rounded to the next odd number.</BLURB> @@ -1589,6 +1589,16 @@ </ARG> <ARG> +<NAME>GstLPWSinc::cutoff</NAME> +<TYPE>gfloat</TYPE> +<RANGE>[0,100000]</RANGE> +<FLAGS>rw</FLAGS> +<NICK>Cutoff</NICK> +<BLURB>Cut-off Frequency (Hz).</BLURB> +<DEFAULT>0</DEFAULT> +</ARG> + +<ARG> <NAME>GstIIR::A</NAME> <TYPE>gdouble</TYPE> <RANGE></RANGE> diff --git a/docs/plugins/gst-plugins-bad-plugins.signals b/docs/plugins/gst-plugins-bad-plugins.signals index be79db7c..bb6b21e4 100644 --- a/docs/plugins/gst-plugins-bad-plugins.signals +++ b/docs/plugins/gst-plugins-bad-plugins.signals @@ -30,6 +30,54 @@ guint arg1 </SIGNAL> <SIGNAL> +<NAME>GstRTPSession::on-bye-ssrc</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPSession::on-bye-timeout</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPSession::on-new-ssrc</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPSession::on-ssrc-collision</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPSession::on-ssrc-validated</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPSession::on-timeout</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPSession *gstrtpsession +guint arg1 +</SIGNAL> + +<SIGNAL> <NAME>GstRTPPtDemux::clear-pt-map</NAME> <RETURNS>void</RETURNS> <FLAGS>la</FLAGS> @@ -93,6 +141,60 @@ guint arg2 </SIGNAL> <SIGNAL> +<NAME>GstRTPBin::on-bye-ssrc</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPBin::on-bye-timeout</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPBin::on-new-ssrc</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPBin::on-ssrc-collision</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPBin::on-ssrc-validated</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> +<NAME>GstRTPBin::on-timeout</NAME> +<RETURNS>void</RETURNS> +<FLAGS>l</FLAGS> +GstRTPBin *gstrtpbin +guint arg1 +guint arg2 +</SIGNAL> + +<SIGNAL> <NAME>GstCDAudio::track-change</NAME> <RETURNS>void</RETURNS> <FLAGS>l</FLAGS> diff --git a/docs/plugins/inspect/plugin-gstrtpmanager.xml b/docs/plugins/inspect/plugin-gstrtpmanager.xml index 301e0402..05c65f32 100644 --- a/docs/plugins/inspect/plugin-gstrtpmanager.xml +++ b/docs/plugins/inspect/plugin-gstrtpmanager.xml @@ -86,7 +86,7 @@ <longname>RTP packet jitter-buffer</longname> <class>Filter/Network/RTP</class> <description>A buffer that deals with network jitter and other transmission faults</description> - <author>Philippe Kalaf <philippe.kalaf@collabora.co.uk>, Wim Taymans <wim@fluendo.com></author> + <author>Philippe Kalaf <philippe.kalaf@collabora.co.uk>, Wim Taymans <wim.taymans@gmail.com></author> <pads> <caps> <name>src</name> diff --git a/gst/filter/gstbpwsinc.c b/gst/filter/gstbpwsinc.c index 2304ac68..79fa39d9 100644 --- a/gst/filter/gstbpwsinc.c +++ b/gst/filter/gstbpwsinc.c @@ -230,18 +230,18 @@ gst_bpwsinc_class_init (GstBPWSincClass * klass) gobject_class->get_property = bpwsinc_get_property; gobject_class->dispose = gst_bpwsinc_dispose; + /* FIXME: Don't use the complete possible range but restrict the upper boundary + * so automatically generated UIs can use a slider */ g_object_class_install_property (gobject_class, PROP_LOWER_FREQUENCY, - g_param_spec_double ("lower-frequency", "Lower Frequency", - "Cut-off lower frequency (Hz)", - 0.0, G_MAXDOUBLE, 0, G_PARAM_READWRITE)); + g_param_spec_float ("lower-frequency", "Lower Frequency", + "Cut-off lower frequency (Hz)", 0.0, 100000.0, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_UPPER_FREQUENCY, - g_param_spec_double ("upper-frequency", "Upper Frequency", - "Cut-off upper frequency (Hz)", - 0.0, G_MAXDOUBLE, 0, G_PARAM_READWRITE)); + g_param_spec_float ("upper-frequency", "Upper Frequency", + "Cut-off upper frequency (Hz)", 0.0, 100000.0, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_LENGTH, g_param_spec_int ("length", "Length", "Filter kernel length, will be rounded to the next odd number", - 3, G_MAXINT, 101, G_PARAM_READWRITE)); + 3, 50000, 101, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_MODE, g_param_spec_enum ("mode", "Mode", @@ -282,86 +282,51 @@ gst_bpwsinc_init (GstBPWSinc * self, GstBPWSincClass * g_class) bpwsinc_query_type); } -static void -process_32 (GstBPWSinc * self, gfloat * src, gfloat * dst, guint input_samples) -{ - gint kernel_length = self->kernel_length; - gint i, j, k, l; - gint channels = GST_AUDIO_FILTER (self)->format.channels; - gint res_start; - - /* convolution */ - for (i = 0; i < input_samples; i++) { - dst[i] = 0.0; - k = i % channels; - l = i / channels; - for (j = 0; j < kernel_length; j++) - if (l < j) - dst[i] += - self->residue[(kernel_length + l - j) * channels + - k] * self->kernel[j]; - else - dst[i] += src[(l - j) * channels + k] * self->kernel[j]; - } - - /* copy the tail of the current input buffer to the residue, while - * keeping parts of the residue if the input buffer is smaller than - * the kernel length */ - if (input_samples < kernel_length * channels) - res_start = kernel_length * channels - input_samples; - else - res_start = 0; - - for (i = 0; i < res_start; i++) - self->residue[i] = self->residue[i + input_samples]; - for (i = res_start; i < kernel_length * channels; i++) - self->residue[i] = src[input_samples - kernel_length * channels + i]; - - self->residue_length += kernel_length * channels - res_start; - if (self->residue_length > kernel_length * channels) - self->residue_length = kernel_length * channels; +#define DEFINE_PROCESS_FUNC(width,ctype) \ +static void \ +process_##width (GstBPWSinc * self, g##ctype * src, g##ctype * dst, guint input_samples) \ +{ \ + gint kernel_length = self->kernel_length; \ + gint i, j, k, l; \ + gint channels = GST_AUDIO_FILTER (self)->format.channels; \ + gint res_start; \ + \ + /* convolution */ \ + for (i = 0; i < input_samples; i++) { \ + dst[i] = 0.0; \ + k = i % channels; \ + l = i / channels; \ + for (j = 0; j < kernel_length; j++) \ + if (l < j) \ + dst[i] += \ + self->residue[(kernel_length + l - j) * channels + \ + k] * self->kernel[j]; \ + else \ + dst[i] += src[(l - j) * channels + k] * self->kernel[j]; \ + } \ + \ + /* copy the tail of the current input buffer to the residue, while \ + * keeping parts of the residue if the input buffer is smaller than \ + * the kernel length */ \ + if (input_samples < kernel_length * channels) \ + res_start = kernel_length * channels - input_samples; \ + else \ + res_start = 0; \ + \ + for (i = 0; i < res_start; i++) \ + self->residue[i] = self->residue[i + input_samples]; \ + for (i = res_start; i < kernel_length * channels; i++) \ + self->residue[i] = src[input_samples - kernel_length * channels + i]; \ + \ + self->residue_length += kernel_length * channels - res_start; \ + if (self->residue_length > kernel_length * channels) \ + self->residue_length = kernel_length * channels; \ } -static void -process_64 (GstBPWSinc * self, gdouble * src, gdouble * dst, - guint input_samples) -{ - gint kernel_length = self->kernel_length; - gint i, j, k, l; - gint channels = GST_AUDIO_FILTER (self)->format.channels; - gint res_start; - - /* convolution */ - for (i = 0; i < input_samples; i++) { - dst[i] = 0.0; - k = i % channels; - l = i / channels; - for (j = 0; j < kernel_length; j++) - if (l < j) - dst[i] += - self->residue[(kernel_length + l - j) * channels + - k] * self->kernel[j]; - else - dst[i] += src[(l - j) * channels + k] * self->kernel[j]; - } +DEFINE_PROCESS_FUNC (32, float); +DEFINE_PROCESS_FUNC (64, double); - /* copy the tail of the current input buffer to the residue, while - * keeping parts of the residue if the input buffer is smaller than - * the kernel length */ - if (input_samples < kernel_length * channels) - res_start = kernel_length * channels - input_samples; - else - res_start = 0; - - for (i = 0; i < res_start; i++) - self->residue[i] = self->residue[i + input_samples]; - for (i = res_start; i < kernel_length * channels; i++) - self->residue[i] = src[input_samples - kernel_length * channels + i]; - - self->residue_length += kernel_length * channels - res_start; - if (self->residue_length > kernel_length * channels) - self->residue_length = kernel_length * channels; -} +#undef DEFINE_PROCESS_FUNC static void bpwsinc_build_kernel (GstBPWSinc * self) @@ -860,13 +825,13 @@ bpwsinc_set_property (GObject * object, guint prop_id, const GValue * value, } case PROP_LOWER_FREQUENCY: GST_BASE_TRANSFORM_LOCK (self); - self->lower_frequency = g_value_get_double (value); + self->lower_frequency = g_value_get_float (value); bpwsinc_build_kernel (self); GST_BASE_TRANSFORM_UNLOCK (self); break; case PROP_UPPER_FREQUENCY: GST_BASE_TRANSFORM_LOCK (self); - self->upper_frequency = g_value_get_double (value); + self->upper_frequency = g_value_get_float (value); bpwsinc_build_kernel (self); GST_BASE_TRANSFORM_UNLOCK (self); break; @@ -899,10 +864,10 @@ bpwsinc_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_int (value, self->kernel_length); break; case PROP_LOWER_FREQUENCY: - g_value_set_double (value, self->lower_frequency); + g_value_set_float (value, self->lower_frequency); break; case PROP_UPPER_FREQUENCY: - g_value_set_double (value, self->upper_frequency); + g_value_set_float (value, self->upper_frequency); break; case PROP_MODE: g_value_set_enum (value, self->mode); diff --git a/gst/filter/gstbpwsinc.h b/gst/filter/gstbpwsinc.h index d790d040..24a4d2da 100644 --- a/gst/filter/gstbpwsinc.h +++ b/gst/filter/gstbpwsinc.h @@ -65,7 +65,7 @@ struct _GstBPWSinc { gint mode; gint window; - gdouble lower_frequency, upper_frequency; + gfloat lower_frequency, upper_frequency; gint kernel_length; /* length of the filter kernel */ gdouble *residue; /* buffer for left-over samples from previous buffer */ diff --git a/gst/filter/gstlpwsinc.c b/gst/filter/gstlpwsinc.c index 3869553b..3cf14e5d 100644 --- a/gst/filter/gstlpwsinc.c +++ b/gst/filter/gstlpwsinc.c @@ -227,15 +227,17 @@ gst_lpwsinc_class_init (GstLPWSincClass * klass) gobject_class->get_property = lpwsinc_get_property; gobject_class->dispose = gst_lpwsinc_dispose; + + /* FIXME: Don't use the complete possible range but restrict the upper boundary + * so automatically generated UIs can use a slider */ g_object_class_install_property (gobject_class, PROP_FREQUENCY, - g_param_spec_double ("frequency", "Frequency", - "Cut-off Frequency (Hz)", 0.0, G_MAXDOUBLE, 0.0, + g_param_spec_float ("cutoff", "Cutoff", + "Cut-off Frequency (Hz)", 0.0, 100000.0, 0.0, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); - g_object_class_install_property (gobject_class, PROP_LENGTH, g_param_spec_int ("length", "Length", "Filter kernel length, will be rounded to the next odd number", - 3, G_MAXINT, 101, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); + 3, 50000, 101, G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE)); g_object_class_install_property (gobject_class, PROP_MODE, g_param_spec_enum ("mode", "Mode", @@ -261,7 +263,7 @@ gst_lpwsinc_init (GstLPWSinc * self, GstLPWSincClass * g_class) self->window = WINDOW_HAMMING; self->kernel_length = 101; self->latency = 50; - self->frequency = 0.0; + self->cutoff = 0.0; self->kernel = NULL; self->residue = NULL; @@ -275,86 +277,51 @@ gst_lpwsinc_init (GstLPWSinc * self, GstLPWSincClass * g_class) lpwsinc_query_type); } -static void -process_32 (GstLPWSinc * self, gfloat * src, gfloat * dst, guint input_samples) -{ - gint kernel_length = self->kernel_length; - gint i, j, k, l; - gint channels = GST_AUDIO_FILTER (self)->format.channels; - gint res_start; - - /* convolution */ - for (i = 0; i < input_samples; i++) { - dst[i] = 0.0; - k = i % channels; - l = i / channels; - for (j = 0; j < kernel_length; j++) - if (l < j) - dst[i] += - self->residue[(kernel_length + l - j) * channels + - k] * self->kernel[j]; - else - dst[i] += src[(l - j) * channels + k] * self->kernel[j]; - } - - /* copy the tail of the current input buffer to the residue, while - * keeping parts of the residue if the input buffer is smaller than - * the kernel length */ - if (input_samples < kernel_length * channels) - res_start = kernel_length * channels - input_samples; - else - res_start = 0; - - for (i = 0; i < res_start; i++) - self->residue[i] = self->residue[i + input_samples]; - for (i = res_start; i < kernel_length * channels; i++) - self->residue[i] = src[input_samples - kernel_length * channels + i]; - - self->residue_length += kernel_length * channels - res_start; - if (self->residue_length > kernel_length * channels) - self->residue_length = kernel_length * channels; +#define DEFINE_PROCESS_FUNC(width,ctype) \ +static void \ +process_##width (GstLPWSinc * self, g##ctype * src, g##ctype * dst, guint input_samples) \ +{ \ + gint kernel_length = self->kernel_length; \ + gint i, j, k, l; \ + gint channels = GST_AUDIO_FILTER (self)->format.channels; \ + gint res_start; \ + \ + /* convolution */ \ + for (i = 0; i < input_samples; i++) { \ + dst[i] = 0.0; \ + k = i % channels; \ + l = i / channels; \ + for (j = 0; j < kernel_length; j++) \ + if (l < j) \ + dst[i] += \ + self->residue[(kernel_length + l - j) * channels + \ + k] * self->kernel[j]; \ + else \ + dst[i] += src[(l - j) * channels + k] * self->kernel[j]; \ + } \ + \ + /* copy the tail of the current input buffer to the residue, while \ + * keeping parts of the residue if the input buffer is smaller than \ + * the kernel length */ \ + if (input_samples < kernel_length * channels) \ + res_start = kernel_length * channels - input_samples; \ + else \ + res_start = 0; \ + \ + for (i = 0; i < res_start; i++) \ + self->residue[i] = self->residue[i + input_samples]; \ + for (i = res_start; i < kernel_length * channels; i++) \ + self->residue[i] = src[input_samples - kernel_length * channels + i]; \ + \ + self->residue_length += kernel_length * channels - res_start; \ + if (self->residue_length > kernel_length * channels) \ + self->residue_length = kernel_length * channels; \ } -static void -process_64 (GstLPWSinc * self, gdouble * src, gdouble * dst, - guint input_samples) -{ - gint kernel_length = self->kernel_length; - gint i, j, k, l; - gint channels = GST_AUDIO_FILTER (self)->format.channels; - gint res_start; - - /* convolution */ - for (i = 0; i < input_samples; i++) { - dst[i] = 0.0; - k = i % channels; - l = i / channels; - for (j = 0; j < kernel_length; j++) - if (l < j) - dst[i] += - self->residue[(kernel_length + l - j) * channels + - k] * self->kernel[j]; - else - dst[i] += src[(l - j) * channels + k] * self->kernel[j]; - } +DEFINE_PROCESS_FUNC (32, float); +DEFINE_PROCESS_FUNC (64, double); - /* copy the tail of the current input buffer to the residue, while - * keeping parts of the residue if the input buffer is smaller than - * the kernel length */ - if (input_samples < kernel_length * channels) - res_start = kernel_length * channels - input_samples; - else - res_start = 0; - - for (i = 0; i < res_start; i++) - self->residue[i] = self->residue[i + input_samples]; - for (i = res_start; i < kernel_length * channels; i++) - self->residue[i] = src[input_samples - kernel_length * channels + i]; - - self->residue_length += kernel_length * channels - res_start; - if (self->residue_length > kernel_length * channels) - self->residue_length = kernel_length * channels; -} +#undef DEFINE_PROCESS_FUNC static void lpwsinc_build_kernel (GstLPWSinc * self) @@ -377,17 +344,17 @@ lpwsinc_build_kernel (GstLPWSinc * self) } /* Clamp cutoff frequency between 0 and the nyquist frequency */ - self->frequency = - CLAMP (self->frequency, 0.0, GST_AUDIO_FILTER (self)->format.rate / 2); + self->cutoff = + CLAMP (self->cutoff, 0.0, GST_AUDIO_FILTER (self)->format.rate / 2); GST_DEBUG ("lpwsinc: initializing filter kernel of length %d " "with cutoff %.2lf Hz " "for mode %s", - len, self->frequency, + len, self->cutoff, (self->mode == MODE_LOW_PASS) ? "low-pass" : "high-pass"); /* fill the kernel */ - w = 2 * M_PI * (self->frequency / GST_AUDIO_FILTER (self)->format.rate); + w = 2 * M_PI * (self->cutoff / GST_AUDIO_FILTER (self)->format.rate); if (self->kernel) g_free (self->kernel); @@ -800,7 +767,7 @@ lpwsinc_set_property (GObject * object, guint prop_id, const GValue * value, } case PROP_FREQUENCY: GST_BASE_TRANSFORM_LOCK (self); - self->frequency = g_value_get_double (value); + self->cutoff = g_value_get_float (value); lpwsinc_build_kernel (self); GST_BASE_TRANSFORM_UNLOCK (self); break; @@ -833,7 +800,7 @@ lpwsinc_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_int (value, self->kernel_length); break; case PROP_FREQUENCY: - g_value_set_double (value, self->frequency); + g_value_set_float (value, self->cutoff); break; case PROP_MODE: g_value_set_enum (value, self->mode); diff --git a/gst/filter/gstlpwsinc.h b/gst/filter/gstlpwsinc.h index 3e09bd52..f56f5a4d 100644 --- a/gst/filter/gstlpwsinc.h +++ b/gst/filter/gstlpwsinc.h @@ -65,7 +65,7 @@ struct _GstLPWSinc { gint mode; gint window; - gdouble frequency; + gfloat cutoff; gint kernel_length; /* length of the filter kernel */ gdouble *residue; /* buffer for left-over samples from previous buffer */ diff --git a/tests/check/elements/lpwsinc.c b/tests/check/elements/lpwsinc.c index 3d69bc95..d2aeda47 100644 --- a/tests/check/elements/lpwsinc.c +++ b/tests/check/elements/lpwsinc.c @@ -108,7 +108,7 @@ GST_START_TEST (test_lp_0hz) "could not set to playing"); /* cutoff = sampling rate / 4, data = 0 */ - g_object_set (G_OBJECT (lpwsinc), "frequency", 44100 / 4.0, NULL); + g_object_set (G_OBJECT (lpwsinc), "cutoff", 44100 / 4.0, NULL); inbuffer = gst_buffer_new_and_alloc (128 * sizeof (gdouble)); in = (gdouble *) GST_BUFFER_DATA (inbuffer); for (i = 0; i < 128; i++) @@ -166,7 +166,7 @@ GST_START_TEST (test_lp_22050hz) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - g_object_set (G_OBJECT (lpwsinc), "frequency", 44100 / 4.0, NULL); + g_object_set (G_OBJECT (lpwsinc), "cutoff", 44100 / 4.0, NULL); inbuffer = gst_buffer_new_and_alloc (128 * sizeof (gdouble)); in = (gdouble *) GST_BUFFER_DATA (inbuffer); for (i = 0; i < 128; i += 2) { @@ -226,7 +226,7 @@ GST_START_TEST (test_hp_0hz) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - g_object_set (G_OBJECT (lpwsinc), "frequency", 44100 / 4.0, NULL); + g_object_set (G_OBJECT (lpwsinc), "cutoff", 44100 / 4.0, NULL); inbuffer = gst_buffer_new_and_alloc (128 * sizeof (gdouble)); in = (gdouble *) GST_BUFFER_DATA (inbuffer); for (i = 0; i < 128; i++) @@ -284,7 +284,7 @@ GST_START_TEST (test_hp_22050hz) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - g_object_set (G_OBJECT (lpwsinc), "frequency", 44100 / 4.0, NULL); + g_object_set (G_OBJECT (lpwsinc), "cutoff", 44100 / 4.0, NULL); inbuffer = gst_buffer_new_and_alloc (128 * sizeof (gdouble)); in = (gdouble *) GST_BUFFER_DATA (inbuffer); for (i = 0; i < 128; i += 2) { @@ -344,7 +344,7 @@ GST_START_TEST (test_small_buffer) GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing"); - g_object_set (G_OBJECT (lpwsinc), "frequency", 44100 / 4.0, NULL); + g_object_set (G_OBJECT (lpwsinc), "cutoff", 44100 / 4.0, NULL); inbuffer = gst_buffer_new_and_alloc (20 * sizeof (gdouble)); in = (gdouble *) GST_BUFFER_DATA (inbuffer); for (i = 0; i < 20; i++) |