mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-25 15:06:21 +02:00
ogg: support different sample formats
This commit is contained in:
parent
16be4f53b8
commit
16ea1a5d71
4 changed files with 106 additions and 83 deletions
|
@ -153,21 +153,21 @@ FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder
|
|||
|
||||
if (sampleFormat.sampleSize == 1)
|
||||
{
|
||||
int8_t* pcm = (int8_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for(size_t i = 0; i < frame->header.blocksize; i++)
|
||||
pcm[sampleFormat.channels*i + channel] = (int8_t)(buffer[channel][i]);
|
||||
int8_t* chunkBuffer = (int8_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for (size_t i = 0; i < frame->header.blocksize; i++)
|
||||
chunkBuffer[sampleFormat.channels*i + channel] = (int8_t)(buffer[channel][i]);
|
||||
}
|
||||
else if (sampleFormat.sampleSize == 2)
|
||||
{
|
||||
int16_t* pcm = (int16_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for(size_t i = 0; i < frame->header.blocksize; i++)
|
||||
pcm[sampleFormat.channels*i + channel] = SWAP_16((int16_t)(buffer[channel][i]));
|
||||
int16_t* chunkBuffer = (int16_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for (size_t i = 0; i < frame->header.blocksize; i++)
|
||||
chunkBuffer[sampleFormat.channels*i + channel] = SWAP_16((int16_t)(buffer[channel][i]));
|
||||
}
|
||||
else if (sampleFormat.sampleSize == 4)
|
||||
{
|
||||
int32_t* pcm = (int32_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for(size_t i = 0; i < frame->header.blocksize; i++)
|
||||
pcm[sampleFormat.channels*i + channel] = SWAP_32((int32_t)(buffer[channel][i]));
|
||||
int32_t* chunkBuffer = (int32_t*)(pcmChunk->payload + pcmChunk->payloadSize);
|
||||
for (size_t i = 0; i < frame->header.blocksize; i++)
|
||||
chunkBuffer[sampleFormat.channels*i + channel] = SWAP_32((int32_t)(buffer[channel][i]));
|
||||
}
|
||||
}
|
||||
pcmChunk->payloadSize += bytes;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue