From 1407259dbc44b0cf23c9e72770c990e5f8cac680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 6 Nov 2007 12:23:35 +0000 Subject: gst/spectrum/demo-audiotest.c: Use autoaudiosink instead of alsasink and use a sine wave. Original commit message from CVS: * gst/spectrum/demo-audiotest.c: (main): Use autoaudiosink instead of alsasink and use a sine wave. * gst/spectrum/gstspectrum.c: Fix the magnitude calculation. --- ChangeLog | 8 ++++++++ common | 2 +- gst/spectrum/demo-audiotest.c | 4 ++-- gst/spectrum/gstspectrum.c | 18 +++++++++++------- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index fcaab398..d4fcfbab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-11-06 Sebastian Dröge + + * gst/spectrum/demo-audiotest.c: (main): + Use autoaudiosink instead of alsasink and use a sine wave. + + * gst/spectrum/gstspectrum.c: + Fix the magnitude calculation. + 2007-11-04 Tim-Philipp Müller Patch by: Ole André Vadla Ravnås diff --git a/common b/common index 34d7d649..423e2ea9 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 34d7d649b972ea4915611a6ed88f01613bf32777 +Subproject commit 423e2ea96b5f79281f4dd20d734bd968b3d95e89 diff --git a/gst/spectrum/demo-audiotest.c b/gst/spectrum/demo-audiotest.c index 8cc8201f..05c9f886 100644 --- a/gst/spectrum/demo-audiotest.c +++ b/gst/spectrum/demo-audiotest.c @@ -28,7 +28,7 @@ #include #include -#define DEFAULT_AUDIOSINK "alsasink" +#define DEFAULT_AUDIOSINK "autoaudiosink" static GtkWidget *drawingarea = NULL; static guint spect_height = 64; @@ -126,7 +126,7 @@ main (int argc, char *argv[]) bin = gst_pipeline_new ("bin"); src = gst_element_factory_make ("audiotestsrc", "src"); - g_object_set (G_OBJECT (src), "wave", 1, NULL); + g_object_set (G_OBJECT (src), "wave", 0, NULL); spectrum = gst_element_factory_make ("spectrum", "spectrum"); g_object_set (G_OBJECT (spectrum), "bands", spect_bands, "threshold", -80, diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index d9899b49..f2f654a6 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -517,10 +517,12 @@ process_s##width (GstSpectrum *spectrum, const gint##width *samples) \ \ /* Calculate magnitude in db */ \ for (i = 0; i < spectrum->bands; i++) { \ - gdouble val = (gdouble) freqdata[i].r * (gdouble) freqdata[i].r \ - + (gdouble) freqdata[i].i * (gdouble) freqdata[i].i; \ - val = sqrt (val); \ - val = 20.0 * log10 (val / max); \ + gdouble val; \ + val = (gdouble) freqdata[i].r * (gdouble) freqdata[i].r; \ + val += (gdouble) freqdata[i].i * (gdouble) freqdata[i].i; \ + val *= nfft; \ + val /= max*max; \ + val = 10.0 * log10 (val); \ if (val > spectrum->threshold) \ val -= spectrum->threshold; \ else \ @@ -583,9 +585,11 @@ process_f##width (GstSpectrum *spectrum, const g##type *samples) \ \ /* Calculate magnitude in db */ \ for (i = 0; i < spectrum->bands; i++) { \ - gdouble val = freqdata[i].r * freqdata[i].r + freqdata[i].i * freqdata[i].i; \ - val = sqrt (val); \ - val = 20.0 * log10 (val / nfft); \ + gdouble val; \ + val = freqdata[i].r * freqdata[i].r; \ + val += freqdata[i].i * freqdata[i].i; \ + val /= nfft; \ + val = 10.0 * log10 (val); \ if (val > spectrum->threshold) \ val -= spectrum->threshold; \ else \ -- cgit v1.2.1