I'm trying to convert 32 bit audio data into 24 bit audio. However, when I try to play it all I get is noise. It seems I'm missing something very basic?
It should be little endian raw PCM.
template<typename T>
static std::vector<int8_t> audio_32_to_24(const T& audio_data)
{
auto size = std::distance(std::begin(audio_data), std::end(audio_data));
auto input8 = reinterpret_cast<const int8_t*>(&(*std::begin(audio_data)));
auto output8 = std::vector<int8_t>();
output8.reserve(size*3);
for(int n = 0; n < size; ++n)
{
output8.push_back(input8[n*4+1]);
output8.push_back(input8[n*4+2]);
output8.push_back(input8[n*4+3]);
}
return output8;
}