Brian Willoughby wrote:
 
> Hopefully, libsndfile no longer uses the incorrect 0x7FFF (32767)  
> factor for float to 16-bit integer conversions, because that would  
> make it unacceptable for lossless file conversions.

That is a statement of opinion rather than fact but I won't go into
that here.

However, there is a way avoid that feature of libsndfile by avoiding
the use of floats during the conversion. For instance, when convering
from one format to another, sndfile-convert does this:

        if ((outfileminor == SF_FORMAT_DOUBLE) || (outfileminor == 
SF_FORMAT_FLOAT)
                        || (infileminor == SF_FORMAT_DOUBLE) || (infileminor == 
SF_FORMAT_FLOAT)
                        || (infileminor == SF_FORMAT_VORBIS) || (outfileminor 
== SF_FORMAT_VORBIS))
                sfe_copy_data_fp (outfile, infile, sfinfo.channels) ;
        else
                sfe_copy_data_int (outfile, infile, sfinfo.channels) ;

That is the second path (sfe_copy_data_int) would be used for FLAC
-> CAF and CAF -> FLAC conversions.

Erik
-- 
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
_______________________________________________
Flac-dev mailing list
Flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to