diff --git a/src/demuxer/ChunkDemuxer.cpp b/src/demuxer/ChunkDemuxer.cpp index 3906527b..bacd8fda 100644 --- a/src/demuxer/ChunkDemuxer.cpp +++ b/src/demuxer/ChunkDemuxer.cpp @@ -626,8 +626,7 @@ double ChunkDemuxer::ieee80ToDouble(const uint8_t ieee80[10]) const { } // Convert to double - double result = static_cast(mantissa) / (1ULL << 63); - result *= std::pow(2.0, static_cast(exponent) - 16383); + double result = std::ldexp(static_cast(mantissa), exponent - 16383 - 63); return sign ? -result : result; }