Anybody knows the reason for the following code (you can see it in flac/decode.c, flac/encode.c, libFLAC/fixed.c and libFLAC/stream_decoder.c) ?
#if defined _MSC_VER || defined __MINGW32__ /* with MSVC you have to spoon feed it the casting */ residual_bits_per_sample[0] = (FLAC__float)((total_error_0 > 0) ? log(M_LN2 * (FLAC__double)(FLAC__int64)total_error_0 / (FLAC__double)data_len) / M_LN2 : 0.0); ... #else residual_bits_per_sample[0] = (FLAC__float)((total_error_0 > 0) ? log(M_LN2 * (FLAC__double)total_error_0 / (FLAC__double)data_len) / M_LN2 : 0.0); ... #endif IOW: use (FLAC__double)(FLAC__int64)some_uint64_variable for MSVC and MinGW and (FLAC__double)some_uint64_variable for other compilers. relevant patches: http://git.xiph.org/?p=flac.git;a=commitdiff;h=59f4a995ddf0632241116bd69f6dc8c6f3ac790c (april 2001) http://git.xiph.org/?p=flac.git;a=commitdiff;h=40333b13c127bfb3c5f839fb59edbafa23d3ccbb (this patch is probably just a mass rename from _MSC_VER to _MSC_VER + __MINGW32__). Is it MSVC6 specific? The following web pages seem to confirm this: http://www.winehq.org/pipermail/wine-patches/2004-September/012502.html https://mail.gnome.org/archives/commits-list/2012-July/msg01092.html _______________________________________________ flac-dev mailing list flac-dev@xiph.org http://lists.xiph.org/mailman/listinfo/flac-dev