From: David S. <dsc...@us...> - 2003-09-25 00:44:06
|
CVS Root: /cvsroot/gstreamer Module: gst-plugins Changes by: dschleef Date: Wed Sep 24 2003 17:44:04 PDT Branch: BRANCH-GSTREAMER-0_6 Log message: Change algorithm to fix waveform problems. Fixes #116077 Modified files: gst/sine : gstsinesrc.c gstsinesrc.h Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/gst/sine/gstsinesrc.c.diff?r1=1.18&r2=1.18.10.1 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins/gst/sine/gstsinesrc.h.diff?r1=1.4&r2=1.4.10.1 ====Begin Diffs==== Index: gstsinesrc.c =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/gst/sine/gstsinesrc.c,v retrieving revision 1.18 retrieving revision 1.18.10.1 diff -u -d -r1.18 -r1.18.10.1 --- gstsinesrc.c 27 Oct 2002 22:29:56 -0000 1.18 +++ gstsinesrc.c 25 Sep 2003 00:43:52 -0000 1.18.10.1 @@ -237,6 +237,10 @@ while(GST_DPMAN_PROCESS(src->dpman, i)) { + src->accumulator += 2*M_PI*src->samplerate / src->freq; + if(src->accumulator >= 2*M_PI) src->accumulator -= 2*M_PI; + +#if 0 src->table_lookup = (gint)(src->table_pos); src->table_lookup_next = src->table_lookup + 1; src->table_interp = src->table_pos - src->table_lookup; @@ -263,6 +267,9 @@ ) )+src->table_data[src->table_lookup] )* src->volume * 32767.0; +#endif + + samples[i] = sin(src->accumulator) * src->volume * 32767.0; i++; } Index: gstsinesrc.h =================================================================== RCS file: /cvsroot/gstreamer/gst-plugins/gst/sine/gstsinesrc.h,v retrieving revision 1.4 retrieving revision 1.4.10.1 diff -u -d -r1.4 -r1.4.10.1 --- gstsinesrc.h 1 Oct 2002 20:45:29 -0000 1.4 +++ gstsinesrc.h 25 Sep 2003 00:43:52 -0000 1.4.10.1 @@ -62,6 +62,7 @@ gfloat freq; /* lookup table data */ + gdouble accumulator; gfloat *table_data; gdouble table_pos; gdouble table_inc; |