Commit 23c59e8c authored by Warren Dukes's avatar Warren Dukes

wee found the audioFormatConversion bug, was actually a bug in shout plugin

git-svn-id: https://svn.musicpd.org/mpd/trunk@2311 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent 48002320
...@@ -40,6 +40,8 @@ typedef int (* AudioOutputPlayFunc) (AudioOutput * audioOutput, ...@@ -40,6 +40,8 @@ typedef int (* AudioOutputPlayFunc) (AudioOutput * audioOutput,
typedef void (* AudioOutputCloseDeviceFunc) (AudioOutput * audioOutput); typedef void (* AudioOutputCloseDeviceFunc) (AudioOutput * audioOutput);
typedef int (* AudioOutputKeepAliveFunc) (AudioOutput * audioOutput, int ms);
struct _AudioOutput { struct _AudioOutput {
int open; int open;
...@@ -47,17 +49,20 @@ struct _AudioOutput { ...@@ -47,17 +49,20 @@ struct _AudioOutput {
AudioOutputOpenDeviceFunc openDeviceFunc; AudioOutputOpenDeviceFunc openDeviceFunc;
AudioOutputPlayFunc playFunc; AudioOutputPlayFunc playFunc;
AudioOutputCloseDeviceFunc closeDeviceFunc; AudioOutputCloseDeviceFunc closeDeviceFunc;
AudioOutputKeepAliveFunc keepAliveFunc;
void * data; void * data;
}; };
typedef struct _AudioOutputPlugin { typedef struct _AudioOutputPlugin {
char * name; char * name;
AudioOutputInitDriverFunc initDriverFunc; AudioOutputInitDriverFunc initDriverFunc;
AudioOutputFinishDriverFunc finishDriverFunc; AudioOutputFinishDriverFunc finishDriverFunc;
AudioOutputOpenDeviceFunc openDeviceFunc; AudioOutputOpenDeviceFunc openDeviceFunc;
AudioOutputPlayFunc playFunc; AudioOutputPlayFunc playFunc;
AudioOutputCloseDeviceFunc closeDeviceFunc; AudioOutputCloseDeviceFunc closeDeviceFunc;
AudioOutputKeepAliveFunc keepAliveFunc;
} AudioOutputPlugin; } AudioOutputPlugin;
void initAudioOutputPlugins(); void initAudioOutputPlugins();
...@@ -71,5 +76,6 @@ int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat); ...@@ -71,5 +76,6 @@ int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat);
int playAudioOutput(AudioOutput * audioOutput, char * playChunk, int size); int playAudioOutput(AudioOutput * audioOutput, char * playChunk, int size);
void closeAudioOutput(AudioOutput * audioOutput); void closeAudioOutput(AudioOutput * audioOutput);
void finishAudioOutput(AudioOutput * audioOutput); void finishAudioOutput(AudioOutput * audioOutput);
int keepAudioOutputAlive(AudioOutput * audioOutput, int ms);
#endif #endif
...@@ -321,7 +321,7 @@ static int shout_play(AudioOutput * audioOutput, char * playChunk, int size) { ...@@ -321,7 +321,7 @@ static int shout_play(AudioOutput * audioOutput, char * playChunk, int size) {
} }
} }
vorbis_analysis_wrote(&(sd->vd), size/4); vorbis_analysis_wrote(&(sd->vd), samples);
while(1 == vorbis_analysis_blockout(&(sd->vd), &(sd->vb))) { while(1 == vorbis_analysis_blockout(&(sd->vd), &(sd->vb))) {
vorbis_analysis(&(sd->vb), NULL); vorbis_analysis(&(sd->vb), NULL);
......
...@@ -306,7 +306,7 @@ size_t pcm_sizeOfOutputBufferForAudioFormatConversion(AudioFormat * inFormat, ...@@ -306,7 +306,7 @@ size_t pcm_sizeOfOutputBufferForAudioFormatConversion(AudioFormat * inFormat,
outSize = (outSize >> 1) << 2; outSize = (outSize >> 1) << 2;
break; break;
case 2: case 2:
//outSize >>= 1; outSize >>= 1;
break; break;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment