Author: titmuss
Date: Tue May  6 14:06:56 2008
New Revision: 2426

URL: http://svn.slimdevices.com?rev=2426&root=Jive&view=rev
Log:
Bug: N/A
Description:
Use new portaudio 24 bit sample type.


Modified:
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_flac.c
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_output.c
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_pcm.c
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h
    7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_tones.c

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_flac.c
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_flac.c?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_flac.c 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_flac.c Tue 
May  6 14:06:56 2008
@@ -82,14 +82,14 @@
        if (frame->header.channels == 1) {
                if (frame->header.bits_per_sample == 16) {
                        for (i=0; i<frame->header.blocksize; i++) {
-                               FLAC__int32 s = *lptr++ << 16;
-                               *sptr++ = s;
-                               *sptr++ = s;
-                       }
-               }
-               else /* bites_per_sample == 24 */ {
-                       for (i=0; i<frame->header.blocksize; i++) {
                                FLAC__int32 s = *lptr++ << 8;
+                               *sptr++ = s;
+                               *sptr++ = s;
+                       }
+               }
+               else /* bits_per_sample == 24 */ {
+                       for (i=0; i<frame->header.blocksize; i++) {
+                               FLAC__int32 s = *lptr++;
                                *sptr++ = s;
                                *sptr++ = s;
                        }
@@ -98,11 +98,11 @@
        else {
                if (frame->header.bits_per_sample == 16) {
                        for (i=0; i<frame->header.blocksize; i++) {
-                               *sptr++ = *lptr++ << 16;
-                               *sptr++ = *rptr++ << 16;
-                       }
-               }
-               else /* bites_per_sample == 24 */ {
+                               *sptr++ = *lptr++ << 8;
+                               *sptr++ = *rptr++ << 8;
+                       }
+               }
+               else /* bits_per_sample == 24 */ {
                        for (i=0; i<frame->header.blocksize; i++) {
                                *sptr++ = *lptr++ << 8;
                                *sptr++ = *rptr++ << 8;
@@ -176,10 +176,6 @@
 
 
 static u32_t decode_flac_period(void *data) {
-// XXXX
-       return 10;
-
-#if 0
        struct decode_flac *self = (struct decode_flac *) data;
 
        if (self->sample_rate <= 48000) {
@@ -188,7 +184,6 @@
        else {
                return 4;
        }
-#endif
 }
 
 
@@ -220,7 +215,8 @@
        self->sample_rate = 44100;
        self->error_occurred = FALSE;
        
-       FLAC__stream_decoder_process_until_end_of_metadata(self->decoder);
+       // XXXX this was needed for SB, why?
+       //FLAC__stream_decoder_process_until_end_of_metadata(self->decoder);
 
        return self;
 }

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_output.c
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_output.c?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_output.c 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_output.c Tue 
May  6 14:06:56 2008
@@ -23,7 +23,7 @@
 
 void decode_output_begin(void) {
        // XXXX fifo mutex
-       
+
        decode_audio->start();
 
        if (output_started) {

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_pcm.c
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_pcm.c?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_pcm.c 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_pcm.c Tue May 
 6 14:06:56 2008
@@ -77,7 +77,7 @@
 
 
 static sample_t pcm_read16bitLE(u8_t *pos) { 
-       return (*pos | (*(pos + 1) << 8)) << 16;
+       return ((*pos << 16) | (*(pos + 1) << 8));
 }
 
 

Modified: 
7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_portaudio.c 
Tue May  6 14:06:56 2008
@@ -220,11 +220,7 @@
 
        memset(&outputParam, 0, sizeof(outputParam));
        outputParam.channelCount = 2;
-#if AUDIO_ENCODING_BITS == 32
-       outputParam.sampleFormat = paInt32;
-#else
-       outputParam.sampleFormat = paInt16;
-#endif
+       outputParam.sampleFormat = paInt24Padded;
 
        num_devices = Pa_GetDeviceCount();
        for (i = 0; i < num_devices; i++) {

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_priv.h Tue 
May  6 14:06:56 2008
@@ -11,16 +11,9 @@
 #include "audio/fifo.h"
 
 
-/* Audio sample.
- * This can be set to 16-bits or 32-bits as a compile time option.
+/* Audio sample, 24-bit padded.
  */
-#define AUDIO_ENCODING_BITS 32
-
-#if AUDIO_ENCODING_BITS == 32
 typedef s32_t sample_t;
-#else
-typedef s16_t sample_t;
-#endif
 
 #define DECODER_MAX_PARAMS 32
 

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_tones.c
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_tones.c?rev=2426&root=Jive&r1=2425&r2=2426&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_tones.c 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/src/audio/decode/decode_tones.c Tue 
May  6 14:06:56 2008
@@ -12,7 +12,7 @@
 #include "audio/decode/decode_priv.h"
 
 
-#define BLOCKSIZE 1024
+#define BLOCKSIZE 2048
 
 struct decode_tones {
        sample_t *write_buffer;
@@ -36,11 +36,9 @@
 
 /* 40-step (360¡) sine is used for 1102.5 Hz, 2205.0, etc */
 /* TODO make 90¡ */
-static const u32_t sine40[] = {        /* amplitude 2^32-2.  40 samples per 
cycle gives 1102.5Hz */
-0, 335940456, 663608942, 974937174, 1262259217, 1518500249, 1737350766, 
1913421940, 2042378316, 2121044560, 2147483647, 2121044560, 2042378316, 
-1913421940, 1737350766, 1518500249, 1262259217, 974937174, 663608942, 
335940456, 0, -335940456, -663608942, -974937174, -1262259217, -1518500249, 
--1737350766, -1913421940, -2042378316, -2121044560, -2147483647, -2121044560, 
-2042378316, -1913421940, -1737350766, -1518500249, -1262259217, 
--974937174, -663608942, -335940456
+static const u32_t sine40[] = {        /* amplitude 2^24-2.  40 samples per 
cycle gives 1102.5Hz */
+0,1312267,2592222,3808348,4930699,5931641,6786526,7474304,7978039,8285329,8388607,8285329,7978039,7474304,6786526,5931641,4930700,3808348,2592222,1312267,
+0,-1312267,-2592222,-3808348,-4930699,-5931641,-6786526,-7474304,-7978039,-8285329,-8388607,-8285329,-7978039,-7474304,-6786526,-5931641,-4930700,-3808348,-2592222,-1312267
 };
 
 /* 16-step (90¡) sine s used for calculated sines at arbitrary frequencies */
@@ -97,7 +95,8 @@
        sample_t sample, left, right;
        sample_t *write_pos;
        int i;
-       
+
+
        if (!decode_output_can_write(sizeof(sample_t) * BLOCKSIZE, 
self->sample_rate)) {
                return FALSE;
        }
@@ -107,11 +106,7 @@
        switch (self->mode) {
                case DECODE_TONES_MODE_SINE40:
                        for (i = 0; i < BLOCKSIZE; i+=2) {
-#if AUDIO_ENCODING_BITS == 32
                                sample = sine40[self->count];
-#else
-                               sample = (sine40[self->count] >> 16);
-#endif
                
                                if (++self->count == 40)
                                        self->count = 0;
@@ -141,11 +136,7 @@
                                        case 4: self->theta += 
SINE_FREQ_TO_STEP_44100(349.2); break;   
                                }
 
-#if AUDIO_ENCODING_BITS == 32
-                               sample = (decode_tones_sine(self->theta) << 8);
-#else
-                               sample = (decode_tones_sine(self->theta) >> 8);
-#endif
+                               sample = decode_tones_sine(self->theta);
                                
                                /* Select which channel */
                                if (self->tones_multitone_test <= 5) {
@@ -177,14 +168,18 @@
 
 
 static u32_t decode_tones_period(void *data) {
-       struct decode_tones *self = (struct decode_tones *) data;
-
+    // struct decode_tones *self = (struct decode_tones *) data;
+
+       return 1;
+
+#if 0
        if (self->sample_rate <= 48000) {
                return 8;
        }
        else {
                return 4;
        }
+#endif
 }
 
 

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to