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