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