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
This commit is contained in:
parent
480023201a
commit
23c59e8cda
@ -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 {
|
|||||||
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);
|
|||||||
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) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
outSize = (outSize >> 1) << 2;
|
outSize = (outSize >> 1) << 2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//outSize >>= 1;
|
outSize >>= 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user