diff a/src/dop_packer.cpp b/src/dop_packer.cpp --- a/src/dop_packer.cpp +++ b/src/dop_packer.cpp @@ -99,14 +99,14 @@ unsigned char reverse(unsigned char x) void DopPacker::pack_buffer(dsf2flac_int32 *buffer, dsf2flac_uint32 bufferLen) { // check the buffer seems sensible - div_t d = div(bufferLen,reader->getNumChannels()); + ldiv_t d = div(dsf2flac_int64(bufferLen),reader->getNumChannels()); if (d.rem) { fputs("Buffer length is not a multiple of getNumChannels()",stderr); exit(EXIT_FAILURE); } // get the sample buffer boost::circular_buffer* buff = reader->getBuffer(); - for (int i=0; i void DsdDecimator::getSamplesInternal( bool roundToInt) { // check the buffer seems sensible - div_t d = div(bufferLen,getNumChannels()); + ldiv_t d = div(dsf2flac_int64(bufferLen),getNumChannels()); if (d.rem) { fputs("Buffer length is not a multiple of getNumChannels()",stderr); exit(EXIT_FAILURE); @@ -188,7 +188,7 @@ template void DsdDecimator::getSamplesInternal( bool clip = clipAmplitude > 0; // get the sample buffer boost::circular_buffer* buff = reader->getBuffer(); - for (int i=0; i