Re: [linux-audio-dev] libsndfile breakage

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] libsndfile breakage
From: Erik de Castro Lopo (erikd-lad_AT_mega-nerd.com)
Date: Thu Feb 12 2004 - 11:59:47 EET


On Wed, 11 Feb 2004 21:32:03 +0000
james_AT_dis-dot-dat.net wrote:

> Well, I've stopped the crashing.
>
> It was my bad, but still a bit confusing.
>
> Here's what I was doing
>
>
> samples=info->frames*info->channels;
> sound=(sample_t *) malloc (samples * sizeof(sample_t));
> sf_readf_float(f,sound,samples);
>
> Which (I now realise) isn't quite right because I'm trying to read
> twice as many frames as there are in the file (assuming a stereo
> file).

The cause of this is rather subtle. If you use the sndfile-info
program in the file x_kick.wav that you posted, you will notice
that there is non-audio data following the audio data. The
problem is that using sf_readf_float() is attempting to read this
data as audio data.
  
> Changing to sf_read_float does the trick, but I still don't understand
> why some stereo files worked, while others didn't.

The problem free files did not have the trailing non-audio data.

> Opening them in
> something wlse and saving them again in exactly the same format made
> them work!

Saving the file probably removed that trailing non-audio data. Use
the sndfile-info program to verify this.

> Also, shouldn't sf_readf_float handle being asked to read too many
> frames?

Yes, thats a bug. Fix in progress.

Erik

-- 
+-----------------------------------------------------------+
  Erik de Castro Lopo  nospam_AT_mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
Java : A language from the C family of languages. It has all the bad
features of C++ but without the most powerful feature of C, pointers.
-- 
+-----------------------------------------------------------+
  Erik de Castro Lopo  nospam_AT_mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
" ... new TV ad for Microsoft's Internet Explorer e-mail program which
uses the musical theme of the "Confutatis Maledictis" from Mozart's
Requiem. "Where do you want to go today?" is the cheery line on the
screen, while the chorus sings "Confutatis maledictis, flammis acribus
addictis,". This translates to "The damned and accursed are convicted
to the flames of hell."


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Thu Feb 12 2004 - 12:03:40 EET