Simple replacement for faster, but broken, algorithm. Needs to be refixed.
authorDavid Schleef <ds@schleef.org>
Mon, 14 Jul 2003 08:30:45 +0000 (08:30 +0000)
committerDavid Schleef <ds@schleef.org>
Mon, 14 Jul 2003 08:30:45 +0000 (08:30 +0000)
Original commit message from CVS:
Simple replacement for faster, but broken, algorithm.  Needs to be
refixed.

gst/sine/gstsinesrc.c

index 2eee3693e7701eb3d23e5afe0b5a6035bdb1b04b..a6eb692103bdf89a7141b3aca0045103eb69e48e 100644 (file)
@@ -237,7 +237,7 @@ gst_sinesrc_get (GstPad *pad)
   src->timestamp += (gint64)src->samples_per_buffer * GST_SECOND / (gint64)src->samplerate;
    
   while(GST_DPMAN_PROCESS(src->dpman, i)) {
-
+#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;
@@ -264,6 +264,13 @@ gst_sinesrc_get (GstPad *pad)
                     )
                   )+src->table_data[src->table_lookup]
                  )* src->volume * 32767.0;
+#endif
+    src->accumulator += 2*M_PI*src->freq / src->samplerate;
+    if(src->accumulator >= 2*M_PI){
+      src->accumulator -= 2*M_PI;
+    }
+    samples[i] = sin(src->accumulator) * src->volume * 32767.0;
+
     i++;
   }