diff src/xmms-sid.c @ 748:d9d769b5dbe2

Remove oversampling support.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 05 Nov 2012 17:51:08 +0200
parents fb218dbc90cd
children 55eea3fa8868
line wrap: on
line diff
--- a/src/xmms-sid.c	Mon Nov 05 17:26:43 2012 +0200
+++ b/src/xmms-sid.c	Mon Nov 05 17:51:08 2012 +0200
@@ -105,20 +105,10 @@
     if (xs_cfg.audioFrequency < 8000)
         xs_cfg.audioFrequency = 8000;
 
-    if (xs_cfg.oversampleFactor < XS_MIN_OVERSAMPLE)
-        xs_cfg.oversampleFactor = XS_MIN_OVERSAMPLE;
-    else if (xs_cfg.oversampleFactor > XS_MAX_OVERSAMPLE)
-        xs_cfg.oversampleFactor = XS_MAX_OVERSAMPLE;
-
-    if (xs_cfg.audioChannels != XS_CHN_MONO)
-        xs_cfg.oversampleEnable = FALSE;
-
     xs_status.audioFrequency = xs_cfg.audioFrequency;
     xs_status.audioBitsPerSample = xs_cfg.audioBitsPerSample;
     xs_status.audioChannels = xs_cfg.audioChannels;
     xs_status.audioFormat = -1;
-    xs_status.oversampleEnable = xs_cfg.oversampleEnable;
-    xs_status.oversampleFactor = xs_cfg.oversampleFactor;
 
     /* Try to initialize emulator engine */
     xs_init_emu_engine(&xs_cfg.playerEngine, &xs_status);
@@ -127,7 +117,6 @@
     xs_cfg.audioFrequency = xs_status.audioFrequency;
     xs_cfg.audioBitsPerSample = xs_status.audioBitsPerSample;
     xs_cfg.audioChannels = xs_status.audioChannels;
-    xs_cfg.oversampleEnable = xs_status.oversampleEnable;
 
     XS_MUTEX_UNLOCK(xs_status);
     XS_MUTEX_UNLOCK(xs_cfg);
@@ -243,7 +232,7 @@
     xs_tuneinfo_t *myTune;
     gboolean audioOpen = FALSE, doPlay = FALSE, isFound = FALSE;
     gint audioGot, songLength, i;
-    gchar *audioBuffer = NULL, *oversampleBuffer = NULL, *tmpTitle;
+    gchar *audioBuffer = NULL, *tmpTitle;
 
     (void) argPointer;
 
@@ -263,14 +252,6 @@
         goto xs_err_exit;
     }
 
-    if (myStatus.oversampleEnable) {
-        oversampleBuffer = (gchar *) g_malloc(XS_AUDIOBUF_SIZE * myStatus.oversampleFactor);
-        if (oversampleBuffer == NULL) {
-            xs_error("Couldn't allocate memory for audio oversampling buffer!\n");
-            goto xs_err_exit;
-        }
-    }
-
     /*
      * Main player loop: while not stopped, loop here - play subtunes
      */
@@ -387,29 +368,8 @@
          * Play the subtune
          */
         while (xs_status.isPlaying && myStatus.isPlaying && (xs_status.currSong == myStatus.currSong)) {
-            /* Render audio data */
-            if (myStatus.oversampleEnable) {
-                /* Perform oversampled rendering */
-                audioGot = myStatus.sidPlayer->plrFillBuffer(
-                    &myStatus,
-                    oversampleBuffer,
-                    (XS_AUDIOBUF_SIZE * myStatus.oversampleFactor));
-
-                audioGot /= myStatus.oversampleFactor;
-
-                /* Execute rate-conversion with filtering */
-                if (xs_filter_rateconv(audioBuffer, oversampleBuffer,
-                    myStatus.audioFormat, myStatus.oversampleFactor, audioGot) < 0) {
-                    xs_error("Oversampling rate-conversion pass failed.\n");
-                    XS_MUTEX_LOCK(xs_status);
-                    xs_status.isError = TRUE;
-                    XS_MUTEX_UNLOCK(xs_status);
-                    goto xs_err_exit;
-                }
-            } else {
-                audioGot = myStatus.sidPlayer->plrFillBuffer(
-                    &myStatus, audioBuffer, XS_AUDIOBUF_SIZE);
-            }
+            audioGot = myStatus.sidPlayer->plrFillBuffer(
+                &myStatus, audioBuffer, XS_AUDIOBUF_SIZE);
 
             /* I <3 visualice/haujobb */
             xs_plugin_ip.add_vis_pcm(
@@ -471,7 +431,6 @@
     }
 
     g_free(audioBuffer);
-    g_free(oversampleBuffer);
 
     /* Set playing status to false (stopped), thus when
      * XMMS next calls xs_get_time(), it can return appropriate