Denis Oliver Kropp wrote:
Quoting Claudio Ciccani via CVS:

CVSROOT:        /cvs/directfb
Module name:    FusionSound
Changes by:     klan    20050622 15:47:39

Modified files:
. : configure.in include : fusionsound.h interfaces/IFusionSoundMusicProvider: ifusionsoundmusicprovider_mad.c ifusionsoundmusicprovider_vorbis.c ifusionsoundmusicprovider_wave.c src : ifusionsound.c ifusionsoundbuffer.c ifusionsoundplayback.c src/core : Makefile.am core_sound.c playback.c playback.h sound_buffer.c sound_buffer.h Added files: src/core : fs_types.h
Log message:
Added support for Signed 24 and Signed 32 sample formats.

Internal mixing is done converting samples to the range [-1.0 - 1.0].
To do this we use a new type: __fsf (FusionSound Float); this can be a
IEEE float or a fixed float (selectable during configuration).

Added macros to extract informations from sampleformats (index, bits, bytes, 
depth, signed).


Nice :)

I encountered a few days ago that the mixing code reduces quality.
Is this eliminated with the higher precision now?


Using fixed floats there is still a loss of quality.
To be more precise:
  - S16 multiplication discards 5 bits if "accuracy" is not enabled in
    configuration (./configure --enable-accuracy=yes)
  - S24 always lose at least 2 bits
  - S32 always lose at least 10 bits

However you can enable "ieee-floats" during configuration
(./configure --enable-ieee-floats=yes) to avoid loss of data.   

--
Regards,
     Claudio Ciccani

[EMAIL PROTECTED]
http://directfb.org
http://sf.net/projects/php-directfb

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to