[Flac-dev] [st.n@gmx.net: Bug#200435: xmms-flac: doesn't properly support long files]

Stephan Niemz st.n at gmx.net
Wed Jul 9 03:49:09 PDT 2003


I am the before mentioned Debian user who reported this bug.

On Tue, Jul 08, 2003 at 17:17:50 -0400, Steven Richman wrote:
> > > -		file_info->length_in_msec = file_info->total_samples * 10 / (file_info->sample_rate / 100);
> > > +		file_info->length_in_msec = (FLAC__uint64)file_info->total_samples * 10 / (file_info->sample_rate / 100);
> ...
> > It seems like would be simpler to do something like:
> > 
> > (file_info->total_samples / file_info->sample_rate) * 1000;
> 
> Without a float cast, this truncates the length so it's always a multiple
> of 1000ms. That's cool now, but it wouldn't be if the xmms gui changed to
> display track lengths with, say, tenth-of-a-second precision.

Here is a suggestion to avoid this:

       length_in_msec = total_samples / sample_rate * 1000 +
               total_samples % sample_rate / ( sample_rate / 1000 );

    This should be exact to the msec.  No more parentheses than above are
needed since * / % are left-associative, although more parentheses wouldn't
hurt of course. :-)

    While looking at this, I also noticed that in include/FLAC/format.h,
total_samples is defined as FLAC__uint64, which is used in
src/plugin_xmms/plugin.c line 304, while in the latter file, line 57,
total_samples is defined as unsigned (used in line 538), which is only a
32 bit value in most cases. Wouldn't it be better to make it FLAC__uint64,
too?

Thanks,

    - Stephan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/flac-dev/attachments/20030709/abcaa9df/attachment.pgp


More information about the Flac-dev mailing list