From: Josh Coalson Date: Wed, 26 Jan 2005 03:19:29 +0000 (+0000) Subject: improve resolution stream-length-in-millisecond calculation X-Git-Tag: 1.2.0~607 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2e010e7045e666bb0acc7acadec2221c89dfc69;p=platform%2Fupstream%2Fflac.git improve resolution stream-length-in-millisecond calculation --- diff --git a/src/plugin_winamp2/in_flac.c b/src/plugin_winamp2/in_flac.c index d6f1640..ed41dbb 100644 --- a/src/plugin_winamp2/in_flac.c +++ b/src/plugin_winamp2/in_flac.c @@ -307,7 +307,7 @@ static void getfileinfo(char *filename, char *title, int *length_in_msec) filename = lastfn_; if (length_in_msec) { - *length_in_msec = file_info_.length_in_msec; + *length_in_msec = (int)file_info_.length_in_msec; length_in_msec = 0; /* force skip in following code */ } } @@ -327,7 +327,7 @@ static void getfileinfo(char *filename, char *title, int *length_in_msec) } if (length_in_msec) - *length_in_msec = (int)(streaminfo.data.stream_info.total_samples*10 / (streaminfo.data.stream_info.sample_rate/100)); + *length_in_msec = (int)((double)streaminfo.data.stream_info.total_samples / (double)streaminfo.data.stream_info.sample_rate * 1000.0 + 0.5); } /* diff --git a/src/plugin_winamp2/playback.c b/src/plugin_winamp2/playback.c index ef510f7..9648c34 100644 --- a/src/plugin_winamp2/playback.c +++ b/src/plugin_winamp2/playback.c @@ -72,7 +72,7 @@ static void metadata_callback(const FLAC__FileDecoder *decoder, const FLAC__Stre file_info->abort_flag = true; return; } - file_info->length_in_msec = file_info->total_samples * 10 / (file_info->sample_rate / 100); + file_info->length_in_msec = (unsigned)((double)file_info->total_samples / (double)file_info->sample_rate * 1000.0 + 0.5); } else if (metadata->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) { diff --git a/src/plugin_xmms/plugin.c b/src/plugin_xmms/plugin.c index c6020c5..62bdc24 100644 --- a/src/plugin_xmms/plugin.c +++ b/src/plugin_xmms/plugin.c @@ -440,7 +440,7 @@ void FLAC_XMMS__get_song_info(char *filename, char **title, int *length_in_msec) *title = flac_format_song_title(filename); } if(length_in_msec) - *length_in_msec = streaminfo.data.stream_info.total_samples * 10 / (streaminfo.data.stream_info.sample_rate / 100); + *length_in_msec = (unsigned)((double)streaminfo.data.stream_info.total_samples / (double)streaminfo.data.stream_info.sample_rate * 1000.0 + 0.5); } /*********************************************************************** @@ -794,7 +794,7 @@ void metadata_callback_(const void *decoder, const FLAC__StreamMetadata *metadat file_info->bits_per_sample = metadata->data.stream_info.bits_per_sample; file_info->channels = metadata->data.stream_info.channels; file_info->sample_rate = metadata->data.stream_info.sample_rate; - file_info->length_in_msec = (FLAC__uint64)file_info->total_samples * 10 / (file_info->sample_rate / 100); + file_info->length_in_msec = (unsigned)((double)file_info->total_samples / (double)file_info->sample_rate * 1000.0 + 0.5); } else if(metadata->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) { double gain, peak;