bug in esound-0.2.35
- From: Stanley Gambarin <stanleyg76 yahoo com>
- To: gnome-multimedia gnome org
- Subject: bug in esound-0.2.35
- Date: Sat, 06 Aug 2005 19:54:00 -0000
Hello,
just ran into this using Ubuntu. I was trying to
play a simple .au file using ESD and everything worked
is i use 'esdplay'. Using combination 'esdctl cache
...'
and 'esdctl play ...' resulted in audio being clipped.
The problem especially was evident when using
'esdctl loop ...' to play file in a loop.
After looking at the code i was able to find and fix
the problem (please note that i have no idea of how
sound files are working). The function
'esd_send_file'
(esdfile.c) is used to send file contents to the
server. In my case, it sends 2*filesize bytes
since bytes_per_frame = 2. 'esdplay' works since
it just reads the socket (i.e. file contents) until
it hits the end. 'esdctl cache' does not work since
it read (and stores) filesize bytes (and not
2*filesize bytes), resulting in only half of sound
sample. The fix is to change line esdfile.c:198
from:
sample_id = esd_sample_cache( esd, out_format,
out_rate, length, name);
to:
sample_id = esd_sample_cache( esd, out_format,
out_rate, length*bytes_per_frame, name);
I can provide a test file is you need to. The
output
of 'file pump.au' shows:
pump.au: Sun/NeXT audio data: 8-bit ISDN mu-law, mono,
8000 Hz
thanks,
-- stanley
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]