Commit 407497c4 authored by J. Alexander Treuman's avatar J. Alexander Treuman

Split pcm_convertAudioFormat into separate functions for bitrate, channel,

and samplerate conversion. This makes the code much easier to read, and fixes a few bugs that were previously there. git-svn-id: https://svn.musicpd.org/mpd/trunk@6224 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent e6d7663b
...@@ -194,9 +194,7 @@ int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat) ...@@ -194,9 +194,7 @@ int openAudioOutput(AudioOutput * audioOutput, AudioFormat * audioFormat)
static void convertAudioFormat(AudioOutput * audioOutput, char **chunkArgPtr, static void convertAudioFormat(AudioOutput * audioOutput, char **chunkArgPtr,
int *sizeArgPtr) int *sizeArgPtr)
{ {
int size = int size = pcm_sizeOfConvBuffer(&(audioOutput->inAudioFormat),
pcm_sizeOfOutputBufferForAudioFormatConversion(
&(audioOutput->inAudioFormat),
*sizeArgPtr, *sizeArgPtr,
&(audioOutput->outAudioFormat)); &(audioOutput->outAudioFormat));
......
...@@ -82,13 +82,8 @@ int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream, ...@@ -82,13 +82,8 @@ int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream,
data = dataIn; data = dataIn;
datalen = dataInLen; datalen = dataInLen;
} else { } else {
datalen = datalen = pcm_sizeOfConvBuffer(&(dc->audioFormat), dataInLen,
pcm_sizeOfOutputBufferForAudioFormatConversion(& &(cb->audioFormat));
(dc->
audioFormat),
dataInLen,
&(cb->
audioFormat));
if (datalen > convBufferLen) { if (datalen > convBufferLen) {
convBuffer = xrealloc(convBuffer, datalen); convBuffer = xrealloc(convBuffer, datalen);
convBufferLen = datalen; convBufferLen = datalen;
......
...@@ -34,7 +34,6 @@ void pcm_mix(char *buffer1, char *buffer2, size_t bufferSize1, ...@@ -34,7 +34,6 @@ void pcm_mix(char *buffer1, char *buffer2, size_t bufferSize1,
void pcm_convertAudioFormat(AudioFormat * inFormat, char *inBuffer, size_t void pcm_convertAudioFormat(AudioFormat * inFormat, char *inBuffer, size_t
inSize, AudioFormat * outFormat, char *outBuffer); inSize, AudioFormat * outFormat, char *outBuffer);
size_t pcm_sizeOfOutputBufferForAudioFormatConversion(AudioFormat * inFormat, size_t pcm_sizeOfConvBuffer(AudioFormat * inFormat, size_t inSize,
size_t inSize,
AudioFormat * outFormat); AudioFormat * outFormat);
#endif #endif
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